js封装SDK 在VUE、小程序、公众号直接调用js调用后端接口(本文以vue项目为例)
1.封装一个js文件msgSdk.js
注意:需要修改这个请求地址 apiServiceAddress
;(function () {if (window.msgSdk) {return}var msgSdk = (function () {var m_msgSdk = thisvar 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, // 请求的URLmethod: 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}// appthis.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 )}// appISAPIProtocol.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文件
<script src="./static/js/jquery-1.7.1.min.js"></script>
<script src="./static/js/msgSdk.js"></script>
3.在页面中调用
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");});}
相关文章:
js封装SDK 在VUE、小程序、公众号直接调用js调用后端接口(本文以vue项目为例)
1.封装一个js文件msgSdk.js 注意:需要修改这个请求地址 apiServiceAddress ;(function () {if (window.msgSdk) {return}var msgSdk (function () {var m_msgSdk thisvar apiServiceAddress"http://172.12.14.5:8000"this.I_SendHTTPRequest functi…...
ideaSSM社区二手交易平台C2C模式开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 idea ssm 社区二手交易平台系统是一套完善的完整信息管理系统,结合SSM框架完成本系统SpringMVC spring mybatis ,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码…...
利用子类化技术拦截win32窗口各种消息(包括但不限于鼠标键盘消息)
创建子类化函数: 首先,您需要编写一个子类化函数,该函数将用于处理编辑框的消息。这个函数通常会拦截并处理您感兴趣的消息,比如鼠标消息。 子类化编辑框: 在窗口程序中找到编辑框的句柄(HWND)…...
HCIP—OSPF课后练习一
本实验模拟了一个企业网络场景,R1、R2、R3为公司总部网络的路由器,R4、R5分别为企业分支机构1和分支机构2的路由器,并且都采用双上行方式与企业总部相连。整个网络都运行OSPF协议,R1、R2、R3之间的链路位于区域0,R4与R…...
Android 13.0 kenel和frameworks中修改ram运行内存的功能实现
1.前言 在13.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,在产品后续订单中,产品提出要提高硬件配置,但是硬件方面已经定板,项目时间比较仓促,所以 来不及对硬件重新定制,就需要软件方面在ram运行内存的容量大小方面作假,修改ram真实的大小容量,所以…...
如何将应用程序发布到 App Store
憧憬blog主页 在强者的眼中,没有最好,只有更好。我们是移动开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索iOS开发的无限可能! 🔥我们与您分享最新的技术洞察和实战经验࿰…...
Python进程与线程开发
目录 multiprocessing模块 线程的开发 threading模块 setDaemon 死锁 线程间的通信 multiprocessing模块 运行python的时候,我们都是在创建并运行一个进程,(linux中一个进程可以fork一个子进程,并让这个子进程exec另外一个程序)。在pyt…...
【3DsMax】UVW展开——以制作牙膏盒为例
效果 步骤 1. 从网上下载牙膏盒贴图,我下载的贴图地址为(牙膏盒贴图链接) 2. 打开3DsMax,创建一个长方体,设置长宽高分别为180、45、40毫米 打开材质编辑器,点击漫反射后的按钮 双击“位图” 将材质赋予长…...
Mysql数据库概念与安装
目录 一、数据库概述 1、数据库的基本概念 2、数据库管理系统(DBMS) 2.1 数据库管理系统概念 2.2 数据库管理系统工作模式 3、数据库系统(DBS) 3.1 数据库系统概念 3.2 数据库系统发展史 4、关系型数据库与非关系型数据库…...
【Java - 框架 - SpringMVC】(01) SpringMVC框架的简单创建与使用,快速上手
"SpringMVC"框架的简单创建与使用,快速上手; 环境 Java版本"1.8.0_202";Spring Boot版本"2.5.9";Windows 11 专业版_22621.2428;IntelliJ IDEA 2021.1.3(Ultimate Edition)࿱…...
框架篇常见面试题
1、Spring框架的单例bean是线程安全的吗? 2、什么是AOP? 3、Spring的事务是如何实现的? 4、Spring事务失效的场景 5、SpringBean的声明周期 6、Spring的循环依赖 7、SpringMVC的执行流程 8、SpringBoot自动配置原理 9、Spring常见注解 10、My…...
【刷题】滑动窗口入门
送给大家一句话: 那脑袋里的智慧,就像打火石里的火花一样,不去打它是不肯出来的。——莎士比亚 滑动窗口入门 认识滑动窗口Leetcode 209. 长度最小的子数组题目描述算法思路 Leetcode 3. 无重复字符的最长子串题目描述算法思路 Leetcode 1004…...
【Python 48小时速成 3】输入与输出
在 Python 中,输入和输出通常通过内置函数来实现。主要的输入函数是 input(),用于从用户获取输入,而输出函数则是 print(),用于将结果打印到控制台。以下是简单的代码示例演示了输入和输出: # 输入示例 name input(&…...
API开发小红书接口获得小红书笔记详情API接口请求接入演示
为了使用小红书的API接口获取笔记详情,你需要遵循以下步骤: 注册并登录开放平台,创建一个应用并获取App Key和App Secret。 使用App Key和App Secret获取访问令牌(Access Token)。 使用访问令牌(Access T…...
Python条件语句深度解析:从基础到应用的全面指南
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 一、引言 📝 二、…...
【leetcode热题】 地下城游戏
恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0…...
Centos7安装ffmpeg
Centos7安装ffmpeg 用到的包压缩并安装 用到的包 压缩并安装 tar xvJf ffmpeg-5.0.1.tar.xz yum install -y gcctar -zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install yasm --versionyum install -y bzip2tar jxvf nasm-2.14.02.tar.bz2 cd n…...
安卓面试题多线程 81-85
81. 共享变量在多线程下如何保证线程安全?因为多线程是交替执⾏,每个线程操作共享变量时可能会导致数据不⼀致,要确保线程 安全,需要在访问共享变量时添加同步机制。当然,如果这个变量本⾝是线程安全的,⽐如AtomicLong,那么多线程访问也是安全 的🚀🚀🚀🚀🚀�…...
Java基础知识总结(8)
StringBuilder类(是线程不安全的) StringBuffer 和 StringBuilder二者及其相似,下面是构造方法: StringBuilder StringBuilder()创建空对象,空的字符序列 StringBuilder StringBuilder(StringBuilder builder)传入对象创造字符序列 Strin…...
C++基础入门(命名空间,函数,引用)
文章目录 前言1,命名空间2,函数函数重载缺省参数内联函数 3,引用尾声 前言 欢迎来到这篇关于C的入门博客!C是一门强大而又广泛应用的编程语言,作为一门面向对象的编程语言,C可以让你更好地组织和管理代码,提高代码的重用性和可维…...
告别手动转换!用MyBatis TypeHandler优雅处理MySQL 8.0的JSON字段(附完整Spring Boot配置)
告别手动转换!用MyBatis TypeHandler优雅处理MySQL 8.0的JSON字段(附完整Spring Boot配置) 在Spring Boot项目中处理MySQL的JSON字段时,开发者常常陷入手动序列化/反序列化的繁琐操作中。本文将带你彻底摆脱这种低效模式…...
LVGL滚动卡住了?可能是你没搞懂Tile View的`lv_tileview_add_element`用法
LVGL滚动卡住了?可能是你没搞懂Tile View的lv_tileview_add_element用法 在嵌入式GUI开发中,LVGL的Tile View控件是一个非常实用的组件,它允许用户通过滑动在不同的"瓦片"之间导航。然而,很多开发者在初次使用Tile View…...
Game Performance Profiler - 开箱即用的游戏性能分析工具
Game Performance Profiler - 开箱即用的游戏性能分析工具项目地址:https://github.com/zhangxuhan/game-performance-profiler纯开源,仅供学习参考,逐步迭代。一、项目背景与定位 在游戏开发过程中,性能优化始终是一个核心话题。…...
Windows Cleaner:一站式解决C盘爆红的终极免费清理工具
Windows Cleaner:一站式解决C盘爆红的终极免费清理工具 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否也曾经历过这样的瞬间:当电脑…...
终极指南:Apache Fury JIT编译原理如何实现20-170倍序列化加速
终极指南:Apache Fury JIT编译原理如何实现20-170倍序列化加速 【免费下载链接】fory A blazingly fast multi-language serialization framework powered by JIT and zero-copy. 项目地址: https://gitcode.com/gh_mirrors/fu/fory Apache Fury 是一个基于 …...
老玩家回坑指南:手把手教你用‘版本号’快速定位《冒险岛》的青春年代
老玩家回坑指南:用版本号解锁《冒险岛》的时光密码 推开记忆的闸门,2004年盛夏的彩虹岛BGM仿佛又在耳边响起。十六年光阴流转,当你想重新登录那个充满童话色彩的横版世界时,却发现眼前是数十个标榜"怀旧服"的服务器选择…...
JDK动态代理为什么只能代理有接口的类?
在Java基础面试中,“JDK动态代理为什么只能代理有接口的类”是高频核心考点,尤其在考察Spring AOP底层原理时,经常作为前置提问出现。很多开发者仅能记住“必须有接口”这个结论,却无法说清底层逻辑、继承约束和代码验证细节&…...
软件估算-代码行估算法
代码行技术是比较简单的定量估算软件规模的方法。这种方法根据以往开发的类似产品的经验和历史数据,估算实现一个功能需求的源程序行数。当有以往开发类似项目的历史数据可供参考时,用此方法估算出的历史数据还是比较准确的,把实现每个功能需…...
Untrunc终极指南:三步修复损坏MP4/MOV视频的完整教程
Untrunc终极指南:三步修复损坏MP4/MOV视频的完整教程 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾经因为意外断电、传输中断或存储错误而丢失…...
鸣潮自动化终极指南:如何用ok-ww实现智能自动战斗与资源收集
鸣潮自动化终极指南:如何用ok-ww实现智能自动战斗与资源收集 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 鸣潮自动化…...
