# xwlink-mapps **Repository Path**: dfc643/xwlink-mapps ## Basic Information - **Project Name**: xwlink-mapps - **Description**: 极光WiFi APP 小程序共享仓库,欢迎大家投稿上传小程序! - **Primary Language**: HTML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 2 - **Created**: 2022-12-13 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # xwlink-mapps ### 介绍 极光WiFi APP 小程序共享仓库,欢迎大家投稿上传小程序! #### 本地调试 1. 在局域网中启动 Web 服务器(端口80) 2. 复制 ```demo_frpclient``` 到 Web 服务器根目录下 3. 在路由器上绑定 Hosts 条目 ```192.168.x.x mapp.xwlink.dev``` 3. 在极光 WiFi 中安装小程序 “开发调试” 4. 修改 ```demo_frpclient/main.html``` 并调试 #### 提交小程序 1. Fork 本仓库 2. 参考 ```demo_frpclient``` 和 ```manifest.js``` 新建 mApp_XXXXXX 分支 3. 提交代码 4. 新建 Pull Request 5. 等待管理员 Merge 并刷新 GitPages 缓存(建议微信私信我,平时上班没什么空注意) 6. **请不要开发恶意小程序,比如盗取数据,破坏设备等,发现严惩** ### JavaScript 库说明 开发极光 WiFi 小程序,需要基于两个库,详细请参考下列文档 1. MUI 用户界面库:https://dev.dcloud.net.cn/mui/ui/ 2. XWLink 核心库示例:https://gitee.com/dfc643/xwlink-mapps/blob/master/demo_frpclient/main.html ### XWLink 库简单介绍 #### xwNullObj 空方法 这是一个空方法,原始定义语句为 ```xwNullObj = function() {};```。可以用在任何必须调用方法,而实际上无方法需要调用的地方。此类场景在 XWLink 库中比较常见。 #### xwLoading 启动加载中界面 | 参数 | 数据类型 | 说明 | | ---- | ------- | ---- | | 1 | {布尔型} | True: 弹出加载中界面
False: 关闭加载中界面 | | 2 | {方法} | 当打开/关闭弹窗后,执行的回调方法,没有方法时填写 xwNullObj | ```javascript // 启动“加载中”界面,不执行回调 xwLoading(true, xwNullObj); // 关闭“加载中”界面,并弹出提示消息 xwLoading(false, function() { mui.toast("加载中界面已关闭"); }); ``` #### xwlink_get 发送GET请求 | 参数 | 数据类型 | 说明 | | ---- | ------- | ---- | | 1 | {字符串} | 从路由器读取信息的页面路径(含参数) | | 2 | {方法} | 成功执行时的回调方法,没有方法时填写 xwNullObj | | 3 | {方法} | 执行失败时的回调方法,没有方法时填写 xwNullObj | ```javascript /** * 例子1:读取 FRP 开关状态 */ xwlink_get(`Advanced_Extensions_frp.asp`, function(data) { // 从网页中提取数据 var frpSwitchStatus = data.match(/id="frp_enable_fake" *value=([0-1])/)[1]; // 输出信息 console.log(`FRP开关状态为:${frpSwitchStatus}`); }, function() { mui.toast("从路由器读取信息失败"); }); /** * 例子2:通过 GET 请求唤醒电脑 */ var macaddress = "00:FC:39:11:22:33"; xwlink_get(`wol_action.asp?dstmac=${macaddress}`, function() { // 执行成功 mui.alert("远程开机成功", "开机", "确定", null, "div"); }, function() { // 执行失败 mui.toast("远程开机失败"); }); ``` #### xwlink_post 发送POST请求 | 参数 | 数据类型 | 说明 | | ---- | ------- | ---- | | 1 | {字符串} |路由器接受参数的后端路径(抓包获取) | | 2 | {方法} | 成功执行时的回调方法,没有方法时填写 xwNullObj | | 3 | {方法} | 执行失败时的回调方法,没有方法时填写 xwNullObj | **特别说明** * 请求参数请通过浏览器开发者工具,抓包获取! * 注意:路由器原来的 action_mode 请求是 +Apply+ 一定要将 + 替换成空格 ```javascript /** * 例子:开启 FRP 客户端 */ xwlink_post("start_apply.htm", { current_page: "/Advanced_Extensions_frp.asp", sid_list: "LANHostConfig;General;", action_mode: " Apply ", action_script: "", frp_enable: "1", frpc_enable: "1", frps_enable: "0", frp_version: "9", "scripts.frp_script.sh": "FRP配置文件信息" }, function () { mui.toast("设置已应用"); }, function () { mui.alert("应用设置失败!"); }) ``` #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)