js封装SDK 在VUE、小程序、公众号直接调用js调用后端接口(本文以vue项目为例)

news/2024/7/20 3:35:03 标签: javascript, vue.js, 小程序

1.封装一个js文件msgSdk.js

注意:需要修改这个请求地址  apiServiceAddress

javascript">;(function () {
  if (window.msgSdk) {
    return
  }
  var msgSdk = (function () {
    var m_msgSdk = this
    var apiServiceAddress="http://172.12.14.5:8000"
    this.I_SendHTTPRequest = function (msgApiUrl, methodType,option) {
      let oPromise = new Promise(async function (resolve, reject) {
        let url=apiServiceAddress+msgApiUrl
        $.ajax({
            url: url, // 请求的URL
            method: methodType, // 请求方法,可以是GET、POST、PUT、DELETE等
            data: {...option}, // 发送到服务器的数据
            success: function(data) {
                // 请求成功时的回调函数
                resolve(data)
            },
            error: function(jqXHR, textStatus, errorThrown) {
                // 请求失败时的回调函数
                reject(errorThrown)
            }
        });
      })
      return oPromise
    }
    // 站内
    this.M_inStation = function (options) {
      let oPromise = new Promise((resolve, reject) => {
        this.m_ISAPIProtocol
          .station(options)
          .then(
            () => {
              resolve()
            },
            oError => {
              reject(oError)
            }
          )
      })
      return oPromise
    }
    // 小程序
    this.M_miniProject = function (options) {
      let oPromise = new Promise((resolve, reject) => {
        this.m_ISAPIProtocol
          .miniProject(options)
          .then(
            () => {
              resolve()
            },
            oError => {
              reject(oError)
            }
          )
      })
      return oPromise
    }
    // 公众号
    this.M_officialAccount = function (options) {
      let oPromise = new Promise((resolve, reject) => {
        this.m_ISAPIProtocol
          .officialAccount(options)
          .then(
            () => {
              resolve()
            },
            oError => {
              reject(oError)
            }
          )
      })
      return oPromise
    }
    // app
    this.M_App = function (options) {
      let oPromise = new Promise((resolve, reject) => {
        this.m_ISAPIProtocol
          .App(options)
          .then(
            () => {
              resolve()
            },
            oError => {
              reject(oError)
            }
          )
      })
      return oPromise
    }
    // 短信
    this.M_textMessage = function (options) {
      let oPromise = new Promise((resolve, reject) => {
        this.m_ISAPIProtocol
          .textMessage(options)
          .then(
            () => {
              resolve()
            },
            oError => {
              reject(oError)
            }
          )
      })
      return oPromise
    }
    // 企业微信
    this.M_weCom = function (options) {
      let oPromise = new Promise((resolve, reject) => {
        this.m_ISAPIProtocol
          .weCom(options)
          .then(
            () => {
              resolve()
            },
            oError => {
              reject(oError)
            }
          )
      })
      return oPromise
    }
    var ISAPIProtocol = function () {}
    // 站内消息
    ISAPIProtocol.prototype.station = function (options) {
      return m_msgSdk.I_SendHTTPRequest("/ISAPI/Security/userCheck?format=json","get",options )
    }
    // 小程序
    ISAPIProtocol.prototype.miniProject = function (options) {
      return m_msgSdk.I_SendHTTPRequest("/ISAPI/Security/userCheck?format=json","get",options )
    }
    // 公众号
    ISAPIProtocol.prototype.officialAccount = function (options) {
      return m_msgSdk.I_SendHTTPRequest("/ISAPI/Security/userCheck?format=json","get",options )
    }
    // app
    ISAPIProtocol.prototype.App = function (options) {
      return m_msgSdk.I_SendHTTPRequest("/ISAPI/Security/userCheck?format=json","get",options )
    }
    // 短信
    ISAPIProtocol.prototype.textMessage = function (options) {
      return m_msgSdk.I_SendHTTPRequest("/ISAPI/Security/userCheck?format=json","get",options )
    }
    // 企业微信
    ISAPIProtocol.prototype.weCom = function (options) {
      return m_msgSdk.I_SendHTTPRequest("/ISAPI/Security/weCom?weCom","get",options )
    }
    m_ISAPIProtocol = new ISAPIProtocol()
    return this
  })()
  var NS = (window.msgSdk = msgSdk)
  NS.version = '1.0.0'
})(this)
if ('object' === typeof exports && typeof module !== 'undefined') {
} else if ('function' === typeof define && define.amd) {
  define(function () {
    return msgSdk
  })
} else if ('function' === typeof define && define.cmd) {
  define(function (require, exports, module) {
    module.exports = msgSdk
  })
} else {
}

2.在index.html中引入msgSdk.js文件jquery文件

javascript"><script src="./static/js/jquery-1.7.1.min.js"></script>
<script src="./static/js/msgSdk.js"></script>

3.在页面中调用

javascript"> mounted() {
    let oDeviceInfo = {
      IP: "http://666",
      Port: "8000",
      Auth: "95484",
    }
    msgSdk.M_weCom(oDeviceInfo).then(
      (data) => {
        console.log(data,"data");
      },
      (error) => {
        console.log(error,"error");
      }
    );
  }


http://www.niftyadmin.cn/n/5440170.html

相关文章

OpenGL-图像USM锐化

图像USM锐化 为什么要锐化&#xff1f; 图片调整后的颜色应用于原始图像的RGB值&#xff0c;以使得图像看起来更加清晰和/或改变外观。 流程 1、图片高斯模糊 2、获取高斯模糊像素点&#xff0c;根据USM锐化公式计算每个像素点锐化之后的像素 USM公式 image为原图图片 ga…

27-5 文件上传漏洞 -大小写、空格、点、下划线等绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、大小写绕过(upload-labs 靶场的第5关) 通过查看源码靶场的第5关是黑名单过滤,而且只是过滤了 php 这些,代码中没有转换大小写所以可以使用大小写写绕过,但是windows系统…

Java 数据长度获取方式对比:length属性、length()和size()方法

在Java编程中&#xff0c;我们经常需要获取不同数据类型的长度信息&#xff0c;比如字符串(String)、数组(Array)和集合(Collection)等。针对这些常见数据类型&#xff0c;Java提供了不同的方法和属性来获取它们的长度。下面是每个数据类型获取长度的方式和底层原理的介绍。 1…

美国亚马逊销售无线门铃FCC ID认证怎么办理,需要提供哪些资料?

什么是无线门铃&#xff1f; 无线门铃的英文名称是wireless doorbell&#xff0c;又称无线遥控门铃。常见的无线门铃有不用电池的无线门铃、普通无线门铃及可视无线门铃。无线门铃是利用民用无线技术开发出来的一类门铃。一般无线门铃的传输距离约为40米。无线门铃不需要布线&…

Visual Studio 中的键盘快捷方式大全

Visual Studio 中的键盘快捷方式大全 官方版 Visual Studio 中的键盘快捷方式大全官方版生成&#xff1a;常用快捷方式调试&#xff1a;常用快捷方式编辑&#xff1a;常用快捷方式文件&#xff1a;常用快捷方式项目&#xff1a;常用快捷方式重构&#xff1a;常用快捷方式工具&…

【Godot 4.2】常见几何图形、网格、刻度线点求取函数及原理总结

概述 本篇为ShapePoints静态函数库的补充和辅助文档。ShapePoints函数库是一个用于生成常见几何图形顶点数据&#xff08;PackedVector2Array&#xff09;的静态函数库。生成的数据可用于_draw和Line2D、Polygon2D等进行绘制和显示。因为不断地持续扩展&#xff0c;ShapePoint…

安防监控平台EasyCVR使用管理员权限登录后,平台菜单栏显示不全是什么原因?

安防视频监控系统EasyCVR视频综合管理平台&#xff0c;采用了开放式的网络结构&#xff0c;平台能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有…

nginx加载第三方模块的方法

这次主要讨论nginx如何加载第三方模块&#xff0c;已经对nginx非常熟悉的朋友可以跳过&#xff0c;该文章适合nginx初识者或者有相关疑问的同学。 主要讨论以下模块的加载方法&#xff0c;不过其他的模块加载方法类似&#xff1a; ngx_http_proxy_connect_module&#xff08;…