Commit 7e1c776ad8ac4956327d68a96fe714fcbba5df0d
1 parent
161722ed
app
Showing
39 changed files
with
1002 additions
and
0 deletions
app/index.html
0 → 100644
| 1 | +<!DOCTYPE html> | |
| 2 | +<html> | |
| 3 | + <head> | |
| 4 | + <meta charset="utf-8"> | |
| 5 | + <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> | |
| 6 | + <title></title> | |
| 7 | + <script src="./js/common.js" type="text/javascript"></script> | |
| 8 | + <script type="text/javascript"> | |
| 9 | + // function disp_confirm() | |
| 10 | + // { | |
| 11 | + // var r= confirm("Press a button") | |
| 12 | + // if (r) { | |
| 13 | + // plus.storage.setItem('privacyPolicy', 'agree'); | |
| 14 | + // } | |
| 15 | + // else | |
| 16 | + // { | |
| 17 | + // // plus.runtime.quit(); | |
| 18 | + // } | |
| 19 | + // } | |
| 20 | + document.addEventListener('plusready', function() { | |
| 21 | + const data = getUrlData(); | |
| 22 | + if (!data) { | |
| 23 | + window.location.href = 'http://118.178.131.219:8088/loginMobile'; | |
| 24 | + // showSettingPage(); | |
| 25 | + } else { | |
| 26 | + showMainPage(); | |
| 27 | + } | |
| 28 | + // const sPrivacyPolicy = plus.storage.getItem('privacyPolicy'); | |
| 29 | + // if (sPrivacyPolicy !== "agree") { | |
| 30 | + // disp_confirm(); | |
| 31 | + // } | |
| 32 | + }); | |
| 33 | + | |
| 34 | + function showSettingPage() { | |
| 35 | + const view = plus.webview.create('/setting.html', 'setting'); | |
| 36 | + view.show("pop-in"); | |
| 37 | + } | |
| 38 | + | |
| 39 | + function showMainPage() { | |
| 40 | + const waitTime = 5000; | |
| 41 | + const data = getUrlData(); | |
| 42 | + const url = `${data.protocol}://${data.url}:${data.port}/loginMobile`; | |
| 43 | + // window.location.href = url; | |
| 44 | + // console.log(url); | |
| 45 | + const webview = plus.webview.currentWebview(); | |
| 46 | + | |
| 47 | + const timerId = setTimeout(() => { | |
| 48 | + webview.loadURL('/setting.html'); | |
| 49 | + }, waitTime); | |
| 50 | + webview.onloaded = () => { | |
| 51 | + clearTimeout(timerId); | |
| 52 | + }; | |
| 53 | + webview.loadURL(url); | |
| 54 | + } | |
| 55 | + </script> | |
| 56 | + </head> | |
| 57 | + <body> | |
| 58 | + | |
| 59 | + </body> | |
| 60 | +</html> | ... | ... |
app/js/backbutton.js
0 → 100644
| 1 | +// 解决 关于HBuilder X打包的APP按返回键退出的问题 | |
| 2 | +document.addEventListener('plusready', function() { | |
| 3 | + var first = null; | |
| 4 | + const webview = window.plus.webview.currentWebview(); | |
| 5 | + //自定义运行期返回 | |
| 6 | + const main = plus.android.runtimeMainActivity(); | |
| 7 | + //返回后台,但是不退出应用 | |
| 8 | + plus.runtime.quit = function() { | |
| 9 | + main.moveTaskToBack(false); | |
| 10 | + }; | |
| 11 | + //监听返回按键 | |
| 12 | + plus.key.addEventListener("backbutton", function() { | |
| 13 | + //监听webview窗口是否可以返回 | |
| 14 | + webview.canBack(function(e) { | |
| 15 | + if(e.canBack) { | |
| 16 | + //可以返回返回上一页面 | |
| 17 | + // plus.navigator.back(); | |
| 18 | + webview.back(); | |
| 19 | + } else { | |
| 20 | + //不可以返回 | |
| 21 | + //处理逻辑:2秒内,连续两次按返回键,则退出应用; | |
| 22 | + //首次按键,提示再按一次退出应用 | |
| 23 | + if (!first) { | |
| 24 | + first = new Date().getTime(); | |
| 25 | + //通过H5+ API 调用Android 上的toast 提示框 | |
| 26 | + plus.nativeUI.toast('再按一次退出应用', { | |
| 27 | + duration: 'short' | |
| 28 | + }); | |
| 29 | + setTimeout(function() { | |
| 30 | + first = null; | |
| 31 | + }, 2000); | |
| 32 | + } else { | |
| 33 | + if (new Date().getTime() - first < 2000) { | |
| 34 | + plus.runtime.quit();//退出app | |
| 35 | + } | |
| 36 | + } | |
| 37 | + } | |
| 38 | + }); | |
| 39 | + }, false); | |
| 40 | +}); | |
| 0 | 41 | \ No newline at end of file | ... | ... |
app/js/common.js
0 → 100644
| 1 | +/** | |
| 2 | + * @param {String} protocol 协议, http/https | |
| 3 | + * @param {string} url url地址 | |
| 4 | + * @param {number} port | |
| 5 | + */ | |
| 6 | +// eslint-disable-next-line no-unused-vars | |
| 7 | +function setUrlData(protocol, url, port) { | |
| 8 | + // eslint-disable-next-line no-undef | |
| 9 | + plus.storage.setItem('urlData', JSON.stringify({ | |
| 10 | + protocol, | |
| 11 | + url, | |
| 12 | + port, | |
| 13 | + })); | |
| 14 | +} | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * @return {{protocol:'http'|'https', url:string, port:number} | null} | |
| 18 | + */ | |
| 19 | +// eslint-disable-next-line no-unused-vars | |
| 20 | +function getUrlData() { | |
| 21 | + // eslint-disable-next-line no-undef | |
| 22 | + const str = plus.storage.getItem('urlData'); | |
| 23 | + try { | |
| 24 | + return JSON.parse(str); | |
| 25 | + } catch (e) { | |
| 26 | + return null; | |
| 27 | + } | |
| 28 | +} | |
| 29 | + | |
| 30 | +// eslint-disable-next-line no-unused-vars | |
| 31 | +function getDefaultUrlData() { | |
| 32 | + return { | |
| 33 | + protocol: 'http', | |
| 34 | + url: '118.178.131.219', | |
| 35 | + port: 8088, | |
| 36 | + }; | |
| 37 | +} | ... | ... |
app/manifest.json
0 → 100644
| 1 | +{ | |
| 2 | + "@platforms" : [ "android", "iPhone", "iPad" ], | |
| 3 | + "id" : "H5F097120", | |
| 4 | + /*应用的标识*/ | |
| 5 | + "name" : "小羚羊ERP", | |
| 6 | + /*应用名称,程序桌面图标名称*/ | |
| 7 | + "version" : { | |
| 8 | + "name" : "1.1", | |
| 9 | + /*应用版本名称*/ | |
| 10 | + "code" : 101 | |
| 11 | + }, | |
| 12 | + "description" : "", | |
| 13 | + /*应用描述信息*/ | |
| 14 | + "icons" : { | |
| 15 | + "72" : "icon.png" | |
| 16 | + }, | |
| 17 | + "launch_path" : "index.html", | |
| 18 | + /*应用的入口页面,默认为根目录下的index.html;支持网络地址,必须以http://或https://开头*/ | |
| 19 | + "developer" : { | |
| 20 | + "name" : "", | |
| 21 | + /*开发者名称*/ | |
| 22 | + "email" : "", | |
| 23 | + /*开发者邮箱地址*/ | |
| 24 | + "url" : "" /*开发者个人主页地址*/ | |
| 25 | + }, | |
| 26 | + "permissions" : { | |
| 27 | + "Accelerometer" : { | |
| 28 | + "description" : "访问加速度感应器" | |
| 29 | + }, | |
| 30 | + "Audio" : { | |
| 31 | + "description" : "访问麦克风" | |
| 32 | + }, | |
| 33 | + "Messaging" : { | |
| 34 | + "description" : "短彩邮件插件" | |
| 35 | + }, | |
| 36 | + "Cache" : { | |
| 37 | + "description" : "管理应用缓存" | |
| 38 | + }, | |
| 39 | + "Camera" : { | |
| 40 | + "description" : "访问摄像头" | |
| 41 | + }, | |
| 42 | + "Console" : { | |
| 43 | + "description" : "跟踪调试输出日志" | |
| 44 | + }, | |
| 45 | + "Contacts" : { | |
| 46 | + "description" : "访问系统联系人信息" | |
| 47 | + }, | |
| 48 | + "Device" : { | |
| 49 | + "description" : "访问设备信息" | |
| 50 | + }, | |
| 51 | + "Downloader" : { | |
| 52 | + "description" : "文件下载管理" | |
| 53 | + }, | |
| 54 | + "Events" : { | |
| 55 | + "description" : "应用扩展事件" | |
| 56 | + }, | |
| 57 | + "File" : { | |
| 58 | + "description" : "访问本地文件系统" | |
| 59 | + }, | |
| 60 | + "Gallery" : { | |
| 61 | + "description" : "访问系统相册" | |
| 62 | + }, | |
| 63 | + "Geolocation" : { | |
| 64 | + "description" : "访问位置信息" | |
| 65 | + }, | |
| 66 | + "Invocation" : { | |
| 67 | + "description" : "使用Native.js能力" | |
| 68 | + }, | |
| 69 | + "Orientation" : { | |
| 70 | + "description" : "访问方向感应器" | |
| 71 | + }, | |
| 72 | + "Proximity" : { | |
| 73 | + "description" : "访问距离感应器" | |
| 74 | + }, | |
| 75 | + "Storage" : { | |
| 76 | + "description" : "管理应用本地数据" | |
| 77 | + }, | |
| 78 | + "Uploader" : { | |
| 79 | + "description" : "管理文件上传任务" | |
| 80 | + }, | |
| 81 | + "Runtime" : { | |
| 82 | + "description" : "访问运行期环境" | |
| 83 | + }, | |
| 84 | + "XMLHttpRequest" : { | |
| 85 | + "description" : "跨域网络访问" | |
| 86 | + }, | |
| 87 | + "Zip" : { | |
| 88 | + "description" : "文件压缩与解压缩" | |
| 89 | + }, | |
| 90 | + "Barcode" : { | |
| 91 | + "description" : "管理二维码扫描插件" | |
| 92 | + }, | |
| 93 | + "Maps" : { | |
| 94 | + "description" : "管理地图插件" | |
| 95 | + }, | |
| 96 | + "Speech" : { | |
| 97 | + "description" : "管理语音识别插件" | |
| 98 | + }, | |
| 99 | + "Webview" : { | |
| 100 | + "description" : "窗口管理" | |
| 101 | + }, | |
| 102 | + "NativeUI" : { | |
| 103 | + "description" : "原生UI控件" | |
| 104 | + }, | |
| 105 | + "Navigator" : { | |
| 106 | + "description" : "浏览器信息" | |
| 107 | + }, | |
| 108 | + "NativeObj" : { | |
| 109 | + "description" : "原生对象" | |
| 110 | + } | |
| 111 | + }, | |
| 112 | + "plus" : { | |
| 113 | + "error" : { | |
| 114 | + "url" : "/setting.html" | |
| 115 | + }, | |
| 116 | + "splashscreen" : { | |
| 117 | + "autoclose" : true, | |
| 118 | + /*是否自动关闭程序启动界面,true表示应用加载应用入口页面后自动关闭;false则需调plus.navigator.closeSplashscreen()关闭*/ | |
| 119 | + "waiting" : true, /*是否在程序启动界面显示等待雪花,true表示显示,false表示不显示。*/ | |
| 120 | + "delay" : 1 | |
| 121 | + }, | |
| 122 | + "popGesture" : "close", | |
| 123 | + /*设置应用默认侧滑返回关闭Webview窗口,"none"为无侧滑返回功能,"hide"为侧滑隐藏Webview窗口。参考http://ask.dcloud.net.cn/article/102*/ | |
| 124 | + "runmode" : "normal", | |
| 125 | + /*应用的首次启动运行模式,可取liberate或normal,liberate模式在第一次启动时将解压应用资源(Android平台File API才可正常访问_www目录)*/ | |
| 126 | + "signature" : "Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==", | |
| 127 | + /*可选,保留给应用签名,暂不使用*/ | |
| 128 | + "distribute" : { | |
| 129 | + "apple" : { | |
| 130 | + "appid" : "", | |
| 131 | + /*iOS应用标识,苹果开发网站申请的appid,如io.dcloud.HelloH5*/ | |
| 132 | + "mobileprovision" : "", | |
| 133 | + /*iOS应用打包配置文件*/ | |
| 134 | + "password" : "", | |
| 135 | + /*iOS应用打包个人证书导入密码*/ | |
| 136 | + "p12" : "", | |
| 137 | + /*iOS应用打包个人证书,打包配置文件关联的个人证书*/ | |
| 138 | + "devices" : "universal", | |
| 139 | + /*iOS应用支持的设备类型,可取值iphone/ipad/universal*/ | |
| 140 | + "frameworks" : [] /*调用Native.js调用原生Objective-c API需要引用的FrameWork,如需调用GameCenter,则添加"GameKit.framework"*/ | |
| 141 | + }, | |
| 142 | + "google" : { | |
| 143 | + "packagename" : "", | |
| 144 | + /*Android应用包名,如io.dcloud.HelloH5*/ | |
| 145 | + "keystore" : "", | |
| 146 | + /*Android应用打包使用的密钥库文件*/ | |
| 147 | + "password" : "", | |
| 148 | + /*Android应用打包使用密钥库中证书的密码*/ | |
| 149 | + "aliasname" : "", | |
| 150 | + /*Android应用打包使用密钥库中证书的别名*/ | |
| 151 | + "permissions" : [ | |
| 152 | + "<uses-feature android:name=\"android.hardware.camera\"/>", | |
| 153 | + "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", | |
| 154 | + "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", | |
| 155 | + "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", | |
| 156 | + "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | |
| 157 | + "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", | |
| 158 | + "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>", | |
| 159 | + "<uses-permission android:name=\"android.permission.CAMERA\"/>", | |
| 160 | + "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", | |
| 161 | + "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", | |
| 162 | + "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | |
| 163 | + "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | |
| 164 | + "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", | |
| 165 | + "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", | |
| 166 | + "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>", | |
| 167 | + "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", | |
| 168 | + "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", | |
| 169 | + "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>", | |
| 170 | + "<uses-permission android:name=\"android.permission.VIBRATE\"/>", | |
| 171 | + "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>", | |
| 172 | + "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>", | |
| 173 | + "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" | |
| 174 | + ] | |
| 175 | + }, | |
| 176 | + /*使用Native.js调用原生安卓API需要使用到的系统权限*/ | |
| 177 | + "orientation" : [ "portrait-primary" ], | |
| 178 | + /*应用支持的方向,portrait-primary:竖屏正方向;portrait-secondary:竖屏反方向;landscape-primary:横屏正方向;landscape-secondary:横屏反方向*/ | |
| 179 | + "icons" : { | |
| 180 | + "ios" : { | |
| 181 | + "prerendered" : true, | |
| 182 | + /*应用图标是否已经高亮处理,在iOS6及以下设备上有效*/ | |
| 183 | + "auto" : "", | |
| 184 | + /*应用图标,分辨率:512x512,用于自动生成各种尺寸程序图标*/ | |
| 185 | + "iphone" : { | |
| 186 | + "normal" : "", | |
| 187 | + /*iPhone3/3GS程序图标,分辨率:57x57*/ | |
| 188 | + "retina" : "", | |
| 189 | + /*iPhone4程序图标,分辨率:114x114*/ | |
| 190 | + "retina7" : "", | |
| 191 | + /*iPhone4S/5/6程序图标,分辨率:120x120*/ | |
| 192 | + "retina8" : "", | |
| 193 | + /*iPhone6 Plus程序图标,分辨率:180x180*/ | |
| 194 | + "spotlight-normal" : "", | |
| 195 | + /*iPhone3/3GS Spotlight搜索程序图标,分辨率:29x29*/ | |
| 196 | + "spotlight-retina" : "", | |
| 197 | + /*iPhone4 Spotlight搜索程序图标,分辨率:58x58*/ | |
| 198 | + "spotlight-retina7" : "", | |
| 199 | + /*iPhone4S/5/6 Spotlight搜索程序图标,分辨率:80x80*/ | |
| 200 | + "settings-normal" : "", | |
| 201 | + /*iPhone4设置页面程序图标,分辨率:29x29*/ | |
| 202 | + "settings-retina" : "", | |
| 203 | + /*iPhone4S/5/6设置页面程序图标,分辨率:58x58*/ | |
| 204 | + "settings-retina8" : "", /*iPhone6Plus设置页面程序图标,分辨率:87x87*/ | |
| 205 | + "app@2x" : "unpackage/res/icons/120x120.png", | |
| 206 | + "app@3x" : "unpackage/res/icons/180x180.png", | |
| 207 | + "notification@2x" : "unpackage/res/icons/40x40.png", | |
| 208 | + "notification@3x" : "unpackage/res/icons/60x60.png", | |
| 209 | + "settings@2x" : "unpackage/res/icons/58x58.png", | |
| 210 | + "settings@3x" : "unpackage/res/icons/87x87.png", | |
| 211 | + "spotlight@2x" : "unpackage/res/icons/80x80.png", | |
| 212 | + "spotlight@3x" : "unpackage/res/icons/120x120.png" | |
| 213 | + }, | |
| 214 | + "ipad" : { | |
| 215 | + "normal" : "", | |
| 216 | + /*iPad普通屏幕程序图标,分辨率:72x72*/ | |
| 217 | + "retina" : "", | |
| 218 | + /*iPad高分屏程序图标,分辨率:144x144*/ | |
| 219 | + "normal7" : "", | |
| 220 | + /*iPad iOS7程序图标,分辨率:76x76*/ | |
| 221 | + "retina7" : "", | |
| 222 | + /*iPad iOS7高分屏程序图标,分辨率:152x152*/ | |
| 223 | + "spotlight-normal" : "", | |
| 224 | + /*iPad Spotlight搜索程序图标,分辨率:50x50*/ | |
| 225 | + "spotlight-retina" : "", | |
| 226 | + /*iPad高分屏Spotlight搜索程序图标,分辨率:100x100*/ | |
| 227 | + "spotlight-normal7" : "", | |
| 228 | + /*iPad iOS7 Spotlight搜索程序图标,分辨率:40x40*/ | |
| 229 | + "spotlight-retina7" : "", | |
| 230 | + /*iPad iOS7高分屏Spotlight搜索程序图标,分辨率:80x80*/ | |
| 231 | + "settings-normal" : "", | |
| 232 | + /*iPad设置页面程序图标,分辨率:29x29*/ | |
| 233 | + "settings-retina" : "", /*iPad高分屏设置页面程序图标,分辨率:58x58*/ | |
| 234 | + "app" : "unpackage/res/icons/76x76.png", | |
| 235 | + "app@2x" : "unpackage/res/icons/152x152.png", | |
| 236 | + "notification" : "unpackage/res/icons/20x20.png", | |
| 237 | + "notification@2x" : "unpackage/res/icons/40x40.png", | |
| 238 | + "proapp@2x" : "unpackage/res/icons/167x167.png", | |
| 239 | + "settings" : "unpackage/res/icons/29x29.png", | |
| 240 | + "settings@2x" : "unpackage/res/icons/58x58.png", | |
| 241 | + "spotlight" : "unpackage/res/icons/40x40.png", | |
| 242 | + "spotlight@2x" : "unpackage/res/icons/80x80.png" | |
| 243 | + }, | |
| 244 | + "appstore" : "unpackage/res/icons/1024x1024.png" | |
| 245 | + }, | |
| 246 | + "android" : { | |
| 247 | + "mdpi" : "", | |
| 248 | + /*普通屏程序图标,分辨率:48x48*/ | |
| 249 | + "ldpi" : "", | |
| 250 | + /*大屏程序图标,分辨率:48x48*/ | |
| 251 | + "hdpi" : "unpackage/res/icons/72x72.png", | |
| 252 | + /*高分屏程序图标,分辨率:72x72*/ | |
| 253 | + "xhdpi" : "unpackage/res/icons/96x96.png", | |
| 254 | + /*720P高分屏程序图标,分辨率:96x96*/ | |
| 255 | + "xxhdpi" : "unpackage/res/icons/144x144.png", /*1080P 高分屏程序图标,分辨率:144x144*/ | |
| 256 | + "xxxhdpi" : "unpackage/res/icons/192x192.png" | |
| 257 | + } | |
| 258 | + }, | |
| 259 | + "splashscreen" : { | |
| 260 | + "ios" : { | |
| 261 | + "iphone" : { | |
| 262 | + "default" : "", | |
| 263 | + /*iPhone3启动图片选,分辨率:320x480*/ | |
| 264 | + "retina35" : "", | |
| 265 | + /*3.5英寸设备(iPhone4)启动图片,分辨率:640x960*/ | |
| 266 | + "retina40" : "", | |
| 267 | + /*4.0 英寸设备(iPhone5/iPhone5s)启动图片,分辨率:640x1136*/ | |
| 268 | + "retina47" : "", | |
| 269 | + /*4.7 英寸设备(iPhone6)启动图片,分辨率:750x1334*/ | |
| 270 | + "retina55" : "", | |
| 271 | + /*5.5 英寸设备(iPhone6 Plus)启动图片,分辨率:1242x2208*/ | |
| 272 | + "retina55l" : "" /*5.5 英寸设备(iPhone6 Plus)横屏启动图片,分辨率:2208x1242*/ | |
| 273 | + }, | |
| 274 | + "ipad" : { | |
| 275 | + "portrait" : "", | |
| 276 | + /*iPad竖屏启动图片,分辨率:768x1004*/ | |
| 277 | + "portrait-retina" : "", | |
| 278 | + /*iPad高分屏竖屏图片,分辨率:1536x2008*/ | |
| 279 | + "landscape" : "", | |
| 280 | + /*iPad横屏启动图片,分辨率:1024x748*/ | |
| 281 | + "landscape-retina" : "", | |
| 282 | + /*iPad高分屏横屏启动图片,分辨率:2048x1496*/ | |
| 283 | + "portrait7" : "", | |
| 284 | + /*iPad iOS7竖屏启动图片,分辨率:768x1024*/ | |
| 285 | + "portrait-retina7" : "", | |
| 286 | + /*iPad iOS7高分屏竖屏图片,分辨率:1536x2048*/ | |
| 287 | + "landscape7" : "", | |
| 288 | + /*iPad iOS7横屏启动图片,分辨率:1024x768*/ | |
| 289 | + "landscape-retina7" : "" /*iPad iOS7高分屏横屏启动图片,分辨率:2048x1536*/ | |
| 290 | + } | |
| 291 | + }, | |
| 292 | + "android" : { | |
| 293 | + "mdpi" : "", | |
| 294 | + /*普通屏启动图片,分辨率:240x282*/ | |
| 295 | + "ldpi" : "", | |
| 296 | + /*大屏启动图片,分辨率:320x442*/ | |
| 297 | + "hdpi" : "", | |
| 298 | + /*高分屏启动图片,分辨率:480x762*/ | |
| 299 | + "xhdpi" : "", | |
| 300 | + /*720P高分屏启动图片,分辨率:720x1242*/ | |
| 301 | + "xxhdpi" : "" /*1080P高分屏启动图片,分辨率:1080x1882*/ | |
| 302 | + }, | |
| 303 | + "androidStyle" : "common" | |
| 304 | + }, | |
| 305 | + "plugins" : { | |
| 306 | + "speech" : { | |
| 307 | + "ifly" : {} | |
| 308 | + }, | |
| 309 | + "ad" : {} | |
| 310 | + }, | |
| 311 | + "ios" : { | |
| 312 | + "dSYMs" : false | |
| 313 | + } | |
| 314 | + } | |
| 315 | + }, | |
| 316 | + "screenOrientation" : [ "portrait-primary" ] | |
| 317 | +} | ... | ... |
app/setting.html
0 → 100644
| 1 | +<!DOCTYPE html> | |
| 2 | +<html> | |
| 3 | + <head> | |
| 4 | + <meta charset="utf-8"> | |
| 5 | + <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> | |
| 6 | + <title></title> | |
| 7 | + <script src="./js/common.js"></script> | |
| 8 | + <script src="./js/backbutton.js"></script> | |
| 9 | + <style> | |
| 10 | + * { | |
| 11 | + box-sizing: border-box; | |
| 12 | + } | |
| 13 | + | |
| 14 | + html, | |
| 15 | + body { | |
| 16 | + margin: 0; | |
| 17 | + padding: 0; | |
| 18 | + color: #666; | |
| 19 | + font-size: 14px; | |
| 20 | + } | |
| 21 | + | |
| 22 | + header { | |
| 23 | + background-color: #f2f2f2; | |
| 24 | + padding: 15px 10px; | |
| 25 | + font-weight: bold; | |
| 26 | + font-size: 16px; | |
| 27 | + } | |
| 28 | + | |
| 29 | + main { | |
| 30 | + margin: 10px; | |
| 31 | + } | |
| 32 | + | |
| 33 | + h3 { | |
| 34 | + font-size: 14px; | |
| 35 | + margin: 20px 0 5px 0; | |
| 36 | + font-weight: normal; | |
| 37 | + } | |
| 38 | + | |
| 39 | + select, | |
| 40 | + input { | |
| 41 | + border: none; | |
| 42 | + border-bottom: 1px solid #eee; | |
| 43 | + width: 100%; | |
| 44 | + outline: none; | |
| 45 | + padding: 10px 0; | |
| 46 | + transition: all 0.3s; | |
| 47 | + color: #666; | |
| 48 | + border-radius: 0; | |
| 49 | + } | |
| 50 | + | |
| 51 | + input:focus { | |
| 52 | + border-bottom: 1px solid #aaa; | |
| 53 | + } | |
| 54 | + | |
| 55 | + button { | |
| 56 | + background-color: #f2f2f2; | |
| 57 | + color: #1d498d; | |
| 58 | + border: none; | |
| 59 | + width: 100%; | |
| 60 | + padding: 8px; | |
| 61 | + border-radius: 8px; | |
| 62 | + outline: none; | |
| 63 | + transition: all 0.3s; | |
| 64 | + } | |
| 65 | + | |
| 66 | + button:active { | |
| 67 | + background-color: #d9dede; | |
| 68 | + } | |
| 69 | + | |
| 70 | + .ControlGroup { | |
| 71 | + display: flex; | |
| 72 | + } | |
| 73 | + | |
| 74 | + .ControlGroup>*:not(:last-child) { | |
| 75 | + margin-right: 10px; | |
| 76 | + } | |
| 77 | + | |
| 78 | + .BottomFixed { | |
| 79 | + position: fixed; | |
| 80 | + bottom: 10px; | |
| 81 | + left: 10px; | |
| 82 | + right: 10px; | |
| 83 | + } | |
| 84 | + </style> | |
| 85 | + <script type="text/javascript"> | |
| 86 | + let settingData; | |
| 87 | + | |
| 88 | + document.addEventListener('plusready', function() { | |
| 89 | + settingData = getUrlData() || getDefaultUrlData(); | |
| 90 | + updateDisplay(); | |
| 91 | + addListeners(); | |
| 92 | + }); | |
| 93 | + | |
| 94 | + function updateDisplay() { | |
| 95 | + const data = settingData; | |
| 96 | + document.getElementById('stProtocol').value = data.protocol; | |
| 97 | + document.getElementById('tbIp').value = data.url; | |
| 98 | + document.getElementById('tbPort').value = data.port; | |
| 99 | + } | |
| 100 | + | |
| 101 | + function close() { | |
| 102 | + plus.webview.currentWebview().close(); | |
| 103 | + } | |
| 104 | + | |
| 105 | + function addListeners() { | |
| 106 | + document.getElementById('stProtocol').addEventListener('change', (event) => { | |
| 107 | + settingData.protocol = event.target.value; | |
| 108 | + }); | |
| 109 | + document.getElementById('tbIp').addEventListener('change', (event) => { | |
| 110 | + settingData.url = event.target.value; | |
| 111 | + }); | |
| 112 | + document.getElementById('tbPort').addEventListener('change', (event) => { | |
| 113 | + settingData.port = event.target.value; | |
| 114 | + }); | |
| 115 | + | |
| 116 | + // document.getElementById('btnSave').addEventListener('click', () => { | |
| 117 | + // let error = ''; | |
| 118 | + // if (!settingData.url) { | |
| 119 | + // error = '请填写url'; | |
| 120 | + // } else if (!settingData.port) { | |
| 121 | + // error = '请填写端口号'; | |
| 122 | + // } else if (isNaN(settingData.port)) { | |
| 123 | + // error = '请输入正确的端口号' | |
| 124 | + // } | |
| 125 | + | |
| 126 | + // if (error) { | |
| 127 | + // plus.nativeUI.toast(error); | |
| 128 | + // return; | |
| 129 | + // } | |
| 130 | + // setUrlData(settingData.protocol, settingData.url, settingData.port); | |
| 131 | + // plus.runtime.restart(); | |
| 132 | + // }); | |
| 133 | + document.getElementById('btnSave').addEventListener('click', () => { | |
| 134 | + let error = ''; | |
| 135 | + if (!settingData.url) { | |
| 136 | + error = '请填写url'; | |
| 137 | + } else if (!settingData.port) { | |
| 138 | + error = '请填写端口号'; | |
| 139 | + } else if (isNaN(settingData.port)) { | |
| 140 | + error = '请输入正确的端口号'; | |
| 141 | + } | |
| 142 | + | |
| 143 | + if (error) { | |
| 144 | + plus.nativeUI.toast(error); | |
| 145 | + return; | |
| 146 | + } | |
| 147 | + | |
| 148 | + const testUrl = `${settingData.protocol}://${settingData.url}:${settingData.port}/`; | |
| 149 | + plus.nativeUI.showWaiting('正在连接服务器...'); | |
| 150 | + | |
| 151 | + const xhr = new plus.net.XMLHttpRequest(); | |
| 152 | + xhr.open('GET', testUrl, true); | |
| 153 | + xhr.timeout = 5000; // 5秒超时 | |
| 154 | + | |
| 155 | + xhr.onreadystatechange = function() { | |
| 156 | + if (xhr.readyState === 4) { | |
| 157 | + plus.nativeUI.closeWaiting(); | |
| 158 | + if (xhr.status === 0) { | |
| 159 | + // 网络层失败:DNS错误、连接拒绝、超时等 | |
| 160 | + plus.nativeUI.toast('无法连接到服务器,请检查地址和网络'); | |
| 161 | + } else { | |
| 162 | + // 成功收到 HTTP 响应(200/404/500 都算通) | |
| 163 | + setUrlData(settingData.protocol, settingData.url, settingData.port); | |
| 164 | + plus.nativeUI.toast('连接成功,正在重启应用...'); | |
| 165 | + setTimeout(() => { | |
| 166 | + plus.runtime.restart(); | |
| 167 | + }, 800); | |
| 168 | + } | |
| 169 | + } | |
| 170 | + }; | |
| 171 | + | |
| 172 | + // 注意:不再单独监听 onerror/ontimeout,因为 onreadystatechange 已覆盖 | |
| 173 | + xhr.send(); | |
| 174 | + }); | |
| 175 | + document.getElementById('btnCancel').addEventListener('click', (event) => { | |
| 176 | + plus.runtime.restart(); | |
| 177 | + }); | |
| 178 | + } | |
| 179 | + </script> | |
| 180 | + </head> | |
| 181 | + <body> | |
| 182 | + <header>服务器设置</header> | |
| 183 | + <main> | |
| 184 | + <h3>协议</h3> | |
| 185 | + <select id='stProtocol'> | |
| 186 | + <option value="http">http</option> | |
| 187 | + <option value="https">https</option> | |
| 188 | + </select> | |
| 189 | + | |
| 190 | + <h3>IP地址</h3> | |
| 191 | + <input id="tbIp" /> | |
| 192 | + <h3>端口号</h3> | |
| 193 | + <input id="tbPort" /> | |
| 194 | + <div class="ControlGroup BottomFixed"> | |
| 195 | + <button id='btnCancel'>取消</button> | |
| 196 | + <button id='btnSave'>保存</button> | |
| 197 | + </div> | |
| 198 | + </main> | |
| 199 | + </body> | |
| 200 | +</html> | |
| 0 | 201 | \ No newline at end of file | ... | ... |
app/unpackage/cache/apk/H5F097120_cm.apk
0 → 100644
No preview for this file type
app/unpackage/cache/apk/apkurl
0 → 100644
app/unpackage/cache/apk/cmManifestCache.json
0 → 100644
| 1 | +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 | |
| 0 | 2 | \ No newline at end of file | ... | ... |
app/unpackage/cache/certdata
0 → 100644
app/unpackage/cache/cloudcertificate/certini
0 → 100644
app/unpackage/cache/cloudcertificate/package.keystore
0 → 100644
No preview for this file type
app/unpackage/cache/wgt/H5F097120/.manifest/icon-android-hdpi.png
0 → 100644
5.74 KB
app/unpackage/cache/wgt/H5F097120/.manifest/icon-android-xhdpi.png
0 → 100644
8.14 KB
app/unpackage/cache/wgt/H5F097120/.manifest/icon-android-xxhdpi.png
0 → 100644
13.6 KB
app/unpackage/cache/wgt/H5F097120/.manifest/icon-android-xxxhdpi.png
0 → 100644
19 KB
app/unpackage/cache/wgt/H5F097120/index.html
0 → 100644
| 1 | +<!DOCTYPE html> | |
| 2 | +<html> | |
| 3 | + <head> | |
| 4 | + <meta charset="utf-8"> | |
| 5 | + <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> | |
| 6 | + <title></title> | |
| 7 | + <script src="./js/common.js" type="text/javascript"></script> | |
| 8 | + <script type="text/javascript"> | |
| 9 | + // function disp_confirm() | |
| 10 | + // { | |
| 11 | + // var r= confirm("Press a button") | |
| 12 | + // if (r) { | |
| 13 | + // plus.storage.setItem('privacyPolicy', 'agree'); | |
| 14 | + // } | |
| 15 | + // else | |
| 16 | + // { | |
| 17 | + // // plus.runtime.quit(); | |
| 18 | + // } | |
| 19 | + // } | |
| 20 | + document.addEventListener('plusready', function() { | |
| 21 | + const data = getUrlData(); | |
| 22 | + if (!data) { | |
| 23 | + window.location.href = 'http://118.178.131.219:8088/loginMobile'; | |
| 24 | + // showSettingPage(); | |
| 25 | + } else { | |
| 26 | + showMainPage(); | |
| 27 | + } | |
| 28 | + // const sPrivacyPolicy = plus.storage.getItem('privacyPolicy'); | |
| 29 | + // if (sPrivacyPolicy !== "agree") { | |
| 30 | + // disp_confirm(); | |
| 31 | + // } | |
| 32 | + }); | |
| 33 | + | |
| 34 | + function showSettingPage() { | |
| 35 | + const view = plus.webview.create('/setting.html', 'setting'); | |
| 36 | + view.show("pop-in"); | |
| 37 | + } | |
| 38 | + | |
| 39 | + function showMainPage() { | |
| 40 | + const waitTime = 5000; | |
| 41 | + const data = getUrlData(); | |
| 42 | + const url = `${data.protocol}://${data.url}:${data.port}/loginMobile`; | |
| 43 | + // window.location.href = url; | |
| 44 | + // console.log(url); | |
| 45 | + const webview = plus.webview.currentWebview(); | |
| 46 | + | |
| 47 | + const timerId = setTimeout(() => { | |
| 48 | + webview.loadURL('/setting.html'); | |
| 49 | + }, waitTime); | |
| 50 | + webview.onloaded = () => { | |
| 51 | + clearTimeout(timerId); | |
| 52 | + }; | |
| 53 | + webview.loadURL(url); | |
| 54 | + } | |
| 55 | + </script> | |
| 56 | + </head> | |
| 57 | + <body> | |
| 58 | + | |
| 59 | + </body> | |
| 60 | +</html> | ... | ... |
app/unpackage/cache/wgt/H5F097120/js/backbutton.js
0 → 100644
| 1 | +// 解决 关于HBuilder X打包的APP按返回键退出的问题 | |
| 2 | +document.addEventListener('plusready', function() { | |
| 3 | + var first = null; | |
| 4 | + const webview = window.plus.webview.currentWebview(); | |
| 5 | + //自定义运行期返回 | |
| 6 | + const main = plus.android.runtimeMainActivity(); | |
| 7 | + //返回后台,但是不退出应用 | |
| 8 | + plus.runtime.quit = function() { | |
| 9 | + main.moveTaskToBack(false); | |
| 10 | + }; | |
| 11 | + //监听返回按键 | |
| 12 | + plus.key.addEventListener("backbutton", function() { | |
| 13 | + //监听webview窗口是否可以返回 | |
| 14 | + webview.canBack(function(e) { | |
| 15 | + if(e.canBack) { | |
| 16 | + //可以返回返回上一页面 | |
| 17 | + // plus.navigator.back(); | |
| 18 | + webview.back(); | |
| 19 | + } else { | |
| 20 | + //不可以返回 | |
| 21 | + //处理逻辑:2秒内,连续两次按返回键,则退出应用; | |
| 22 | + //首次按键,提示再按一次退出应用 | |
| 23 | + if (!first) { | |
| 24 | + first = new Date().getTime(); | |
| 25 | + //通过H5+ API 调用Android 上的toast 提示框 | |
| 26 | + plus.nativeUI.toast('再按一次退出应用', { | |
| 27 | + duration: 'short' | |
| 28 | + }); | |
| 29 | + setTimeout(function() { | |
| 30 | + first = null; | |
| 31 | + }, 2000); | |
| 32 | + } else { | |
| 33 | + if (new Date().getTime() - first < 2000) { | |
| 34 | + plus.runtime.quit();//退出app | |
| 35 | + } | |
| 36 | + } | |
| 37 | + } | |
| 38 | + }); | |
| 39 | + }, false); | |
| 40 | +}); | |
| 0 | 41 | \ No newline at end of file | ... | ... |
app/unpackage/cache/wgt/H5F097120/js/common.js
0 → 100644
| 1 | +/** | |
| 2 | + * @param {String} protocol 协议, http/https | |
| 3 | + * @param {string} url url地址 | |
| 4 | + * @param {number} port | |
| 5 | + */ | |
| 6 | +// eslint-disable-next-line no-unused-vars | |
| 7 | +function setUrlData(protocol, url, port) { | |
| 8 | + // eslint-disable-next-line no-undef | |
| 9 | + plus.storage.setItem('urlData', JSON.stringify({ | |
| 10 | + protocol, | |
| 11 | + url, | |
| 12 | + port, | |
| 13 | + })); | |
| 14 | +} | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * @return {{protocol:'http'|'https', url:string, port:number} | null} | |
| 18 | + */ | |
| 19 | +// eslint-disable-next-line no-unused-vars | |
| 20 | +function getUrlData() { | |
| 21 | + // eslint-disable-next-line no-undef | |
| 22 | + const str = plus.storage.getItem('urlData'); | |
| 23 | + try { | |
| 24 | + return JSON.parse(str); | |
| 25 | + } catch (e) { | |
| 26 | + return null; | |
| 27 | + } | |
| 28 | +} | |
| 29 | + | |
| 30 | +// eslint-disable-next-line no-unused-vars | |
| 31 | +function getDefaultUrlData() { | |
| 32 | + return { | |
| 33 | + protocol: 'http', | |
| 34 | + url: '118.178.131.219', | |
| 35 | + port: 8088, | |
| 36 | + }; | |
| 37 | +} | ... | ... |
app/unpackage/cache/wgt/H5F097120/manifest.json
0 → 100644
| 1 | +{"@platforms":["android","iPhone","iPad"],"id":"H5F097120","name":"小羚羊ERP","version":{"name":"1.1","code":101},"description":"","icons":{"72":"icon.png"},"launch_path":"index.html","developer":{"name":"","email":"","url":""},"permissions":{"Accelerometer":{"description":"访问加速度感应器"},"Audio":{"description":"访问麦克风"},"Messaging":{"description":"短彩邮件插件"},"Cache":{"description":"管理应用缓存"},"Camera":{"description":"访问摄像头"},"Console":{"description":"跟踪调试输出日志"},"Contacts":{"description":"访问系统联系人信息"},"Device":{"description":"访问设备信息"},"Downloader":{"description":"文件下载管理"},"Events":{"description":"应用扩展事件"},"File":{"description":"访问本地文件系统"},"Gallery":{"description":"访问系统相册"},"Geolocation":{"description":"访问位置信息"},"Invocation":{"description":"使用Native.js能力"},"Orientation":{"description":"访问方向感应器"},"Proximity":{"description":"访问距离感应器"},"Storage":{"description":"管理应用本地数据"},"Uploader":{"description":"管理文件上传任务"},"Runtime":{"description":"访问运行期环境"},"XMLHttpRequest":{"description":"跨域网络访问"},"Zip":{"description":"文件压缩与解压缩"},"Barcode":{"description":"管理二维码扫描插件"},"Maps":{"description":"管理地图插件"},"Speech":{"description":"管理语音识别插件"},"Webview":{"description":"窗口管理"},"NativeUI":{"description":"原生UI控件"},"Navigator":{"description":"浏览器信息"},"NativeObj":{"description":"原生对象"}},"plus":{"error":{"url":"/setting.html"},"splashscreen":{"autoclose":true,"delay":1,"waiting":true},"popGesture":"close","runmode":"normal","signature":"Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==","distribute":{"apple":{"appid":"","devices":"universal","frameworks":[],"mobileprovision":"","p12":"","password":""},"google":{"aliasname":"","keystore":"","packagename":"plus.H55770CCC","password":"","permissions":["<uses-feature android:name=\"android.hardware.camera\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>","<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.CALL_PHONE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>","<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"],"custompermissions":true},"orientation":["portrait-primary"],"icons":{"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","normal":"","normal7":"","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","retina":"","retina7":"","settings":"unpackage/res/icons/29x29.png","settings-normal":"","settings-retina":"","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight-normal":"","spotlight-normal7":"","spotlight-retina":"","spotlight-retina7":"","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","normal":"","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","retina":"","retina7":"","retina8":"","settings-normal":"","settings-retina":"","settings-retina8":"","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight-normal":"","spotlight-retina":"","spotlight-retina7":"","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"},"prerendered":true},"android":{"ldpi":"","mdpi":"","hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"}},"splashscreen":{"ios":{"iphone":{"default":"","retina35":"","retina40":"","retina47":"","retina55":"","retina55l":""},"ipad":{"portrait":"","portrait-retina":"","landscape":"","landscape-retina":"","portrait7":"","portrait-retina7":"","landscape7":"","landscape-retina7":""}},"android":{"mdpi":"","ldpi":"","hdpi":"","xhdpi":"","xxhdpi":""},"androidStyle":"common"},"plugins":{"ad":{},"speech":{"ifly":{}}},"ios":{"dSYMs":false}},"adid":"128720100312"},"screenOrientation":["portrait-primary"]} | |
| 0 | 2 | \ No newline at end of file | ... | ... |
app/unpackage/cache/wgt/H5F097120/setting.html
0 → 100644
| 1 | +<!DOCTYPE html> | |
| 2 | +<html> | |
| 3 | + <head> | |
| 4 | + <meta charset="utf-8"> | |
| 5 | + <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> | |
| 6 | + <title></title> | |
| 7 | + <script src="./js/common.js"></script> | |
| 8 | + <script src="./js/backbutton.js"></script> | |
| 9 | + <style> | |
| 10 | + * { | |
| 11 | + box-sizing: border-box; | |
| 12 | + } | |
| 13 | + | |
| 14 | + html, | |
| 15 | + body { | |
| 16 | + margin: 0; | |
| 17 | + padding: 0; | |
| 18 | + color: #666; | |
| 19 | + font-size: 14px; | |
| 20 | + } | |
| 21 | + | |
| 22 | + header { | |
| 23 | + background-color: #f2f2f2; | |
| 24 | + padding: 15px 10px; | |
| 25 | + font-weight: bold; | |
| 26 | + font-size: 16px; | |
| 27 | + } | |
| 28 | + | |
| 29 | + main { | |
| 30 | + margin: 10px; | |
| 31 | + } | |
| 32 | + | |
| 33 | + h3 { | |
| 34 | + font-size: 14px; | |
| 35 | + margin: 20px 0 5px 0; | |
| 36 | + font-weight: normal; | |
| 37 | + } | |
| 38 | + | |
| 39 | + select, | |
| 40 | + input { | |
| 41 | + border: none; | |
| 42 | + border-bottom: 1px solid #eee; | |
| 43 | + width: 100%; | |
| 44 | + outline: none; | |
| 45 | + padding: 10px 0; | |
| 46 | + transition: all 0.3s; | |
| 47 | + color: #666; | |
| 48 | + border-radius: 0; | |
| 49 | + } | |
| 50 | + | |
| 51 | + input:focus { | |
| 52 | + border-bottom: 1px solid #aaa; | |
| 53 | + } | |
| 54 | + | |
| 55 | + button { | |
| 56 | + background-color: #f2f2f2; | |
| 57 | + color: #1d498d; | |
| 58 | + border: none; | |
| 59 | + width: 100%; | |
| 60 | + padding: 8px; | |
| 61 | + border-radius: 8px; | |
| 62 | + outline: none; | |
| 63 | + transition: all 0.3s; | |
| 64 | + } | |
| 65 | + | |
| 66 | + button:active { | |
| 67 | + background-color: #d9dede; | |
| 68 | + } | |
| 69 | + | |
| 70 | + .ControlGroup { | |
| 71 | + display: flex; | |
| 72 | + } | |
| 73 | + | |
| 74 | + .ControlGroup>*:not(:last-child) { | |
| 75 | + margin-right: 10px; | |
| 76 | + } | |
| 77 | + | |
| 78 | + .BottomFixed { | |
| 79 | + position: fixed; | |
| 80 | + bottom: 10px; | |
| 81 | + left: 10px; | |
| 82 | + right: 10px; | |
| 83 | + } | |
| 84 | + </style> | |
| 85 | + <script type="text/javascript"> | |
| 86 | + let settingData; | |
| 87 | + | |
| 88 | + document.addEventListener('plusready', function() { | |
| 89 | + settingData = getUrlData() || getDefaultUrlData(); | |
| 90 | + updateDisplay(); | |
| 91 | + addListeners(); | |
| 92 | + }); | |
| 93 | + | |
| 94 | + function updateDisplay() { | |
| 95 | + const data = settingData; | |
| 96 | + document.getElementById('stProtocol').value = data.protocol; | |
| 97 | + document.getElementById('tbIp').value = data.url; | |
| 98 | + document.getElementById('tbPort').value = data.port; | |
| 99 | + } | |
| 100 | + | |
| 101 | + function close() { | |
| 102 | + plus.webview.currentWebview().close(); | |
| 103 | + } | |
| 104 | + | |
| 105 | + function addListeners() { | |
| 106 | + document.getElementById('stProtocol').addEventListener('change', (event) => { | |
| 107 | + settingData.protocol = event.target.value; | |
| 108 | + }); | |
| 109 | + document.getElementById('tbIp').addEventListener('change', (event) => { | |
| 110 | + settingData.url = event.target.value; | |
| 111 | + }); | |
| 112 | + document.getElementById('tbPort').addEventListener('change', (event) => { | |
| 113 | + settingData.port = event.target.value; | |
| 114 | + }); | |
| 115 | + | |
| 116 | + // document.getElementById('btnSave').addEventListener('click', () => { | |
| 117 | + // let error = ''; | |
| 118 | + // if (!settingData.url) { | |
| 119 | + // error = '请填写url'; | |
| 120 | + // } else if (!settingData.port) { | |
| 121 | + // error = '请填写端口号'; | |
| 122 | + // } else if (isNaN(settingData.port)) { | |
| 123 | + // error = '请输入正确的端口号' | |
| 124 | + // } | |
| 125 | + | |
| 126 | + // if (error) { | |
| 127 | + // plus.nativeUI.toast(error); | |
| 128 | + // return; | |
| 129 | + // } | |
| 130 | + // setUrlData(settingData.protocol, settingData.url, settingData.port); | |
| 131 | + // plus.runtime.restart(); | |
| 132 | + // }); | |
| 133 | + document.getElementById('btnSave').addEventListener('click', () => { | |
| 134 | + let error = ''; | |
| 135 | + if (!settingData.url) { | |
| 136 | + error = '请填写url'; | |
| 137 | + } else if (!settingData.port) { | |
| 138 | + error = '请填写端口号'; | |
| 139 | + } else if (isNaN(settingData.port)) { | |
| 140 | + error = '请输入正确的端口号'; | |
| 141 | + } | |
| 142 | + | |
| 143 | + if (error) { | |
| 144 | + plus.nativeUI.toast(error); | |
| 145 | + return; | |
| 146 | + } | |
| 147 | + | |
| 148 | + const testUrl = `${settingData.protocol}://${settingData.url}:${settingData.port}/`; | |
| 149 | + plus.nativeUI.showWaiting('正在连接服务器...'); | |
| 150 | + | |
| 151 | + const xhr = new plus.net.XMLHttpRequest(); | |
| 152 | + xhr.open('GET', testUrl, true); | |
| 153 | + xhr.timeout = 5000; // 5秒超时 | |
| 154 | + | |
| 155 | + xhr.onreadystatechange = function() { | |
| 156 | + if (xhr.readyState === 4) { | |
| 157 | + plus.nativeUI.closeWaiting(); | |
| 158 | + if (xhr.status === 0) { | |
| 159 | + // 网络层失败:DNS错误、连接拒绝、超时等 | |
| 160 | + plus.nativeUI.toast('无法连接到服务器,请检查地址和网络'); | |
| 161 | + } else { | |
| 162 | + // 成功收到 HTTP 响应(200/404/500 都算通) | |
| 163 | + setUrlData(settingData.protocol, settingData.url, settingData.port); | |
| 164 | + plus.nativeUI.toast('连接成功,正在重启应用...'); | |
| 165 | + setTimeout(() => { | |
| 166 | + plus.runtime.restart(); | |
| 167 | + }, 800); | |
| 168 | + } | |
| 169 | + } | |
| 170 | + }; | |
| 171 | + | |
| 172 | + // 注意:不再单独监听 onerror/ontimeout,因为 onreadystatechange 已覆盖 | |
| 173 | + xhr.send(); | |
| 174 | + }); | |
| 175 | + document.getElementById('btnCancel').addEventListener('click', (event) => { | |
| 176 | + plus.runtime.restart(); | |
| 177 | + }); | |
| 178 | + } | |
| 179 | + </script> | |
| 180 | + </head> | |
| 181 | + <body> | |
| 182 | + <header>服务器设置</header> | |
| 183 | + <main> | |
| 184 | + <h3>协议</h3> | |
| 185 | + <select id='stProtocol'> | |
| 186 | + <option value="http">http</option> | |
| 187 | + <option value="https">https</option> | |
| 188 | + </select> | |
| 189 | + | |
| 190 | + <h3>IP地址</h3> | |
| 191 | + <input id="tbIp" /> | |
| 192 | + <h3>端口号</h3> | |
| 193 | + <input id="tbPort" /> | |
| 194 | + <div class="ControlGroup BottomFixed"> | |
| 195 | + <button id='btnCancel'>取消</button> | |
| 196 | + <button id='btnSave'>保存</button> | |
| 197 | + </div> | |
| 198 | + </main> | |
| 199 | + </body> | |
| 200 | +</html> | |
| 0 | 201 | \ No newline at end of file | ... | ... |
app/unpackage/res/icons/1024x1024.png
0 → 100644
126 KB
app/unpackage/res/icons/120x120.png
0 → 100644
10.9 KB
app/unpackage/res/icons/144x144.png
0 → 100644
13.6 KB
app/unpackage/res/icons/152x152.png
0 → 100644
14.6 KB
app/unpackage/res/icons/167x167.png
0 → 100644
16.2 KB
app/unpackage/res/icons/180x180.png
0 → 100644
17.6 KB
app/unpackage/res/icons/192x192.png
0 → 100644
19 KB
app/unpackage/res/icons/20x20.png
0 → 100644
1.07 KB
app/unpackage/res/icons/29x29.png
0 → 100644
1.79 KB
app/unpackage/res/icons/40x40.png
0 → 100644
2.68 KB
app/unpackage/res/icons/58x58.png
0 → 100644
4.35 KB
app/unpackage/res/icons/60x60.png
0 → 100644
4.46 KB
app/unpackage/res/icons/72x72.png
0 → 100644
5.74 KB
app/unpackage/res/icons/76x76.png
0 → 100644
6.02 KB
app/unpackage/res/icons/80x80.png
0 → 100644
6.47 KB
app/unpackage/res/icons/87x87.png
0 → 100644
7.17 KB
app/unpackage/res/icons/96x96.png
0 → 100644
8.14 KB
app/unpackage/res/icons/移动端LOGO-16-2.png
0 → 100644
3.52 KB
app/unpackage/res/icons/移动端LOGO-512-2.png
0 → 100644
72.8 KB