websocket优化

main
zhangqun 2 years ago
parent 3f083fb0bb
commit 3ed68e7fa3
  1. 316
      App.vue
  2. 15
      manifest.json
  3. 51
      pages/patrolRecord/report.vue
  4. 51
      pages/voiceRecord/report.vue
  5. BIN
      unpackage/cache/apk/__UNI__B814B58_cm.apk
  6. 2
      unpackage/cache/apk/apkurl
  7. 2
      unpackage/cache/apk/cmManifestCache.json
  8. BIN
      unpackage/cache/wgt/__UNI__B814B58/.manifest/icon-android-hdpi.png
  9. BIN
      unpackage/cache/wgt/__UNI__B814B58/.manifest/icon-android-xhdpi.png
  10. BIN
      unpackage/cache/wgt/__UNI__B814B58/.manifest/icon-android-xxhdpi.png
  11. BIN
      unpackage/cache/wgt/__UNI__B814B58/.manifest/icon-android-xxxhdpi.png
  12. 4
      unpackage/cache/wgt/__UNI__B814B58/app-service.js
  13. 2
      unpackage/cache/wgt/__UNI__B814B58/app-view.js
  14. 2
      unpackage/cache/wgt/__UNI__B814B58/manifest.json
  15. BIN
      unpackage/debug/android_debug.apk
  16. 4
      unpackage/dist/build/app-plus/app-service.js
  17. 2
      unpackage/dist/build/app-plus/app-view.js
  18. 2
      unpackage/dist/build/app-plus/manifest.json
  19. 6
      unpackage/dist/dev/app-plus/app-service.js
  20. 2
      unpackage/dist/dev/app-plus/manifest.json
  21. BIN
      unpackage/release/apk/__UNI__B814B58__20230809135309.apk
  22. BIN
      unpackage/release/apk/__UNI__B814B58__20230814091308.apk
  23. 4
      unpackage/resources/__UNI__B814B58/www/app-service.js
  24. 2
      unpackage/resources/__UNI__B814B58/www/app-view.js
  25. 2
      unpackage/resources/__UNI__B814B58/www/manifest.json

@ -1,4 +1,9 @@
<script>
const keepAlive = uni.requireNativePlugin('Ba-KeepAliveSuit');
const websocket = uni.requireNativePlugin('Ba-Websocket');
import {
dateFormat
} from "@/util/date.js";
export default {
globalData: {
apiUrl: 'http://192.168.3.32:81', //
@ -7,112 +12,177 @@
},
data() {
return {
keepAlive: null,
reTimenum: 5000, //3
reTimer: null, //
headerTimer: null, //
headerTime: 10 * 1000, //
closeTimer: null, //
closeTime: 6000, //
heartBeatEate: 60, //
employeeId: '',
lockReconnect: false, //
message: '',//
message: '', //
timer: null,
reportLastTime: null,//
}
},
onLaunch: function() {
console.log('App Launch');
this.keepAlive = uni.requireNativePlugin('Ba-KeepAliveSuit');
// this.onKeep();
// this.doConnectWebSocket();
/********设置开机自动启动开始********/
this.requestAndroidPermission().then(res => {
if (res == 0) {
let userInfo = uni.getStorageSync('mobileInfo') ? JSON.parse(uni.getStorageSync('mobileInfo')) : null;
if (userInfo && userInfo.employeeId != this.employeeId) {
this.employeeId = userInfo.employeeId;
// this.getStatus();
} else {
uni.navigateTo({
url: '/pages/setting/user'
})
}
}
});
/********设置开机自动启动结束********/
},
beforeDestroy() {
console.log('销毁');
weboscket.stop();
},
onShow: function() {
console.log('App Show');
let userInfo = uni.getStorageSync('mobileInfo') ? JSON.parse(uni.getStorageSync('mobileInfo')) : null;
if (userInfo && userInfo.employeeId != this.employeeId) {
this.employeeId = userInfo.employeeId;
// this.getStatus();
}
if(this.keepAlive){
if (keepAlive) {
console.log('清除消息');
this.onCancelNotify();
}
},
onHide: function() {
console.log('App Hide')
if(this.keepAlive){
// WebSocket
uni.onSocketMessage((res) => {
console.log('收到服务器内容2:' + res.data);
this.sendHeader();
if(res.data == 'success' || res.data == '连接成功' || res.data == 'header') return;
let obj = res.data.indexOf('{') > -1 ? JSON.parse(res.data) : null;
this.message = obj ? obj.buildId + '号楼' + obj.floorNo + '层发生报警:' + obj.content : '';
this.onShowNotify();
});
console.log('App Hide');
if(this.employeeId) {
this.receiveMsg();
this.getStatus(1);
}
},
methods: {
// websocket
start() {
// websocket
websocket.start({
wsUrl: 'ws://192.168.3.32:81/websocket', //websocket
deviceId: this.employeeId, //websocketwsUrl+'/'+deviceId
heartBeatEate: this.heartBeatEate, //3
}, res => {
console.log('start websocket', 'ws://192.168.3.32:81/websocket/' + this.employeeId);
console.log(res);
});
},
stop() {
//
websocket.stop(res => {
console.log('关闭websocket',res);
});
},
receiveMsg() {
//
websocket.receiveMsg(res => {
console.log(res);
if (res.ok && res.msg != '连接成功' && res.msg != 'header' && res.msg.indexOf('拒绝') < 0) {
let obj = JSON.parse(res.msg);
if(this.reportLastTime != obj.reportTime) {
this.reportLastTime = obj.reportTime;
this.message = obj.buildId + '号楼' + obj.floorNo + '层' + dateFormat(new Date(obj.reportTime)) + '发生报警:' + obj
.content;
this.onShowNotify();
}
}
});
},
sendMsg() { //
websocket.sendMsg({
msg: 'header'
}, res => {
console.log(res);
});
},
subStatus() {
// websocket
console.log('监听状态')
websocket.subStatus(res => {
console.log("监听 websocket 连接状态", res);
if (!res.serviceStatus && !res.websocketStatus) {
this.stop();
this.timer && clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.start();
}, 10 * 1000);
}
});
},
getStatus(type) {
// websocket
websocket.getStatus(res => {
console.log("websocket开启状态", res);
if (res.data.serviceStatus) {
if(type == 1) {
this.subStatus();
}
}else if(!res.data.serviceStatus && !res.data.websocketStatus){
this.timer && clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.start();
}, 10 * 1000);
}
});
},
//
onKeep() {
//
this.keepAlive.onKeep({
keepAlive.onKeep({
//channelId: "Ba-KeepAlive",
//channelName: "Ba-KeepAlive",
title: "测试",
content: "常驻通知描述",
// title: "",
// content: "",
},
(res) => {
console.log(res);
});
},
onAutoStart() { //
this.keepAlive.onAutoStart(
keepAlive.onAutoStart(
(res) => {
console.log(res);
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
});
},
requestIgnoreBattery() { //
this.keepAlive.requestIgnoreBattery(
keepAlive.requestIgnoreBattery(
res => {
console.log(res);
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
});
},
goIgnoreBattery() { //
this.keepAlive.goIgnoreBattery(
keepAlive.goIgnoreBattery(
res => {
console.log(res);
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
});
},
isIgnoringBattery() { //
this.keepAlive.isIgnoringBattery(
keepAlive.isIgnoringBattery(
res => {
console.log(res);
// if (res.data) {
// this.msgList.unshift(JSON.stringify(res.data))
// this.msgList.unshift(dateUtil.now())
// }
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
if (!res.data.isIgnoring) {
uni.showModal({
title: '是否忽略电池优化',
content: '忽略后才能在后台保持连接接收消息通知,请前往设置!',
showCancel: false,
confirmText: '去设置',
success: (res) => {
if (res.confirm) {
this.goIgnoreBattery();
}
}
});
}
});
},
onShowNotify() { //
this.keepAlive.onShowNotify({
keepAlive.onShowNotify({
//channelId: "Ba-KeepAlive",
//channelName: "Ba-KeepAlive",
ID: new Date().getTime(),
@ -124,8 +194,9 @@
this.message = '';
});
},
onCancelNotify() { //
this.keepAlive.onCancelNotify({
onCancelNotify() {
//
keepAlive.onCancelNotify({
//channelId: "Ba-KeepAlive",
//channelName: "Ba-KeepAlive",
//ID:99
@ -134,101 +205,60 @@
},
(res) => {
console.log(res);
// uni.showToast({
// title: res.msg,
// icon: "none",
// duration: 3000
// })
});
},
//websocket
doConnectWebSocket() {
this.connectWebSocket();
//socket open
uni.onSocketOpen((res) => {
console.log('WebSocket连接已打开!');
//
this.sendHeader();
});
// //WebSocket
// uni.onSocketMessage((res) => {
// console.log('1' + res.data);
// if(res.data == 'success' || res.data == '' || res.data == 'header') return;
// this.sendHeader();
// });
uni.onSocketError((res) => {
console.log('WebSocket连接打开失败,请检查!');
this.reConnectWebSocket();
});
uni.onSocketClose((res) => {
//
this.headerTimer && clearInterval(this.headerTimer);
console.log('WebSocket连接关闭,请检查!', res);
if (res.code != null && res.code != 1000) {
//
//
this.reConnectWebSocket();
}
});
},
//websocket
connectWebSocket() {
uni.connectSocket({
url: 'ws://192.168.3.32:81/websocket/' + this.employeeId,
method: 'GET',
success(data) {
console.log("websocket连接成功", data);
},
});
},
//
reConnectWebSocket() {
//
if (this.lockReconnect) {
return;
};
this.lockReconnect = true;
console.log('准备重连');
this.reTimer = setTimeout(() => {
this.doConnectWebSocket();
this.lockReconnect = false;
}, this.reTimenum);
},
//
sendHeader() {
console.log("发送心跳sendHeader")
this.headerTimer && clearInterval(this.headerTimer)
this.headerTimer = setInterval(() => {
console.log("发送心跳header")
uni.sendSocketMessage({
data: "header"
});
}, this.headerTime)
},
//
closeConn() {
//6
this.closeTimer = setTimeout(() => {
console.log("执行关闭定时器内容")
uni.closeSocket({
code: 1001,
reason: '断线',
complete(res) {
console.log("websocket关闭complete", res)
requestAndroidPermission() {
return new Promise((resolve, reject) => {
plus.android.requestPermissions(
[
"android.permission.RECEIVE_BOOT_COMPLETED",
"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS", //
],
(resultObj) => {
var result = 0;
for (var i = 0; i < resultObj.granted.length; i++) {
var grantedPermission = resultObj.granted[i];
console.log('已获取的权限:' + grantedPermission);
result = 0;
}
for (var i = 0; i < resultObj.deniedPresent.length; i++) {
var deniedPresentPermission = resultObj.deniedPresent[i];
console.log('拒绝本次申请的权限:' + deniedPresentPermission);
result = 0;
}
for (var i = 0; i < resultObj.deniedAlways.length; i++) {
var deniedAlwaysPermission = resultObj.deniedAlways[i];
console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
result = -1;
}
resolve(result);
//,APP,APP
if (result == -1) {
reject("授权失败:" + JSON.stringify(resultObj.deniedAlways));
if (resultObj.deniedAlways.indexOf('android.permission.RECEIVE_BOOT_COMPLETED') > -1) {
this.onAutoStart();
} else if (resultObj.deniedAlways.indexOf(
'android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS') > -1) {
this.requestIgnoreBattery();
}
}
},
(error) => {
console.log('申请权限错误:' + error.code + " = " + error.message);
resolve({
code: error.code,
message: error.message
});
}
})
}, this.closeTime)
);
});
},
//
getPermis() {
console.log(plus.os.name)
var main = plus.android.runtimeMainActivity();
var pkName = main.getPackageName();
var uid = main.getApplicationInfo().plusGetAttribute("uid");
var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
console.log('plus====', NotificationManagerCompat, uid)
//android.support.v4androidx
if (NotificationManagerCompat == null) {
NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");

@ -40,6 +40,7 @@
"<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.DEVICE_POWER\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.INJECT_EVENTS\"/>",
@ -112,6 +113,20 @@
"pid" : "11765",
"parameters" : {}
}
},
"Ba-Websocket" : {
"__plugin_info__" : {
"name" : "websocket原生服务(自动重连、心跳检测) Ba-Websocket",
"description" : "Ba-Websocket 是一款原生websocket服务插件,可在后台运行。支持自动重连、心跳检测;支持常驻通知保活;支持监听websocket连接状态;支持多页面订阅消息等等。",
"platforms" : "Android",
"url" : "https://ext.dcloud.net.cn/plugin?id=10186",
"android_package_name" : "uni.UNIB814B58",
"ios_bundle_id" : "",
"isCloud" : true,
"bought" : 1,
"pid" : "10186",
"parameters" : {}
}
}
}
},

@ -221,29 +221,36 @@
reportIot(files) {
let _arr = [];
files.forEach(item => {
_arr.push(getApp().globalData.fileUrl + item);
_arr.push({url:getApp().globalData.fileUrl + item});
})
// let data = {
// "regionId": "000000000001",
// "alarmList": [{
// "alarmId": "0000001",
// "alarmType": 700006,
// "alarmMsg": "",
// "handleStatus": 0,
// "srcType": 3,
// "srcDeviceId": this.form.deviceId,
// "srcReporter": "DINGXIN",
// "startTime": new Date().getTime(),
// "endTime": new Date().getTime(),
// "latitude ": this.form.latidute,
// "longitude": this.form.longidute,
// "videoList": _arr,
// "params": {
// "happentime": new Date().getTime(),
// "alarmType": 700006,
// "alarmMsg": ""
// }
// }]
// }
let data = {
"regionId": "000000000001",
"alarmList": [{
"alarmId": "0000001",
"alarmType": 700006,
"alarmMsg": "语音上报",
"handleStatus": 0,
"srcType": 3,
"srcDeviceId": this.form.deviceId,
"srcReporter": "DINGXIN",
"startTime": new Date().getTime(),
"endTime": new Date().getTime(),
"latitude ": this.form.latidute,
"longitude": this.form.longidute,
"videoList": _arr,
"params": {
"happentime": new Date().getTime(),
"alarmType": 700006,
"alarmMsg": ""
}
}]
"alarmTypeIdentity": "700006",
"description": "巡更照片上报",
"deviceSn": this.form.deviceId,
"platformCode": "DIANXIN",
"pictureList": _arr
}
console.log('iot', data)
uni.request({
@ -251,7 +258,7 @@
method: 'POST',
data: data,
success: (res) => {
let _data = res;
let _data = JSON.parse(res.data.data);
if (_data.resultCode == 200) {
uni.showToast({
title: '成功'

@ -274,36 +274,43 @@
reportIot() {
let _arr = [];
this.voices.forEach(item => {
_arr.push(getApp().globalData.fileUrl + item);
_arr.push({url:getApp().globalData.fileUrl + item});
})
// let data = {
// "regionId": "000000000001",
// "alarmList": [{
// "alarmId": "0000001",
// "alarmType": 700005,
// "alarmMsg": "",
// "handleStatus": 0,
// "srcType": 3,
// "srcDeviceId": this.form.deviceId,
// "srcReporter": "DINGXIN",
// "startTime": new Date().getTime(),
// "endTime": new Date().getTime(),
// "latitude ": this.form.latidute,
// "longitude": this.form.longidute,
// "videoList": this.voices,
// "params": {
// "happentime": new Date().getTime(),
// "alarmType": 700005,
// "alarmMsg": ""
// }
// }]
// }
let data = {
"regionId": "000000000001",
"alarmList": [{
"alarmId": "0000001",
"alarmType": 700005,
"alarmMsg": "语音上报",
"handleStatus": 0,
"srcType": 3,
"srcDeviceId": this.form.deviceId,
"srcReporter": "DINGXIN",
"startTime": new Date().getTime(),
"endTime": new Date().getTime(),
"latitude ": this.form.latidute,
"longitude": this.form.longidute,
"videoList": this.voices,
"params": {
"happentime": new Date().getTime(),
"alarmType": 700005,
"alarmMsg": ""
}
}]
"alarmTypeIdentity": "700005",
"description": "语音上报",
"deviceSn": this.form.deviceId,
"platformCode": "DIANXIN",
"pictureList": _arr
}
uni.request({
url: getApp().globalData.apiUrl + '/appData/escalation',
method: 'POST',
data: data,
success: (res) => {
let _data = res;
let _data = JSON.parse(res.data.data);
if (_data.resultCode == 200) {
uni.showToast({
title: '成功',

Binary file not shown.

@ -1 +1 @@
https://ide.dcloud.net.cn/build/download/42624c10-34f3-11ee-a242-1d07bcc37439
https://ide.dcloud.net.cn/build/download/ba63e9e0-3a3f-11ee-bebc-2d939bb31dd1

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__B814B58","name":"齐鲁医院报警检测","version":{"name":"1.0.2","code":102},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Record":{},"VideoPlayer":{},"Geolocation":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","distribute":{"google":{"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_LOCATION_EXTRA_COMMANDS\"/>","<uses-permission android:name=\"android.permission.ACCESS_MOCK_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.BIND_ACCESSIBILITY_SERVICE\"/>","<uses-permission android:name=\"android.permission.BIND_NOTIFICATION_LISTENER_SERVICE\"/>","<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.INJECT_EVENTS\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<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.USE_CREDENTIALS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"],"packagename":"uni.UNIB814B58","aliasname":"","password":"","keystore":"html5plus://test","custompermissions":true},"apple":{"dSYMs":false,"devices":"universal"},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}},"geolocation":{"system":{"__platform__":["android"]}}},"orientation":"portrait-primary"},"nativePlugins":{"Ba-KeepAliveSuit":{}},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.8.7","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html","adid":"122852140111"}}
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__B814B58","name":"齐鲁医院报警检测","version":{"name":"1.0.2","code":102},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Record":{},"VideoPlayer":{},"Geolocation":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","distribute":{"icons":{"android":{"hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"},"prerendered":"false"}},"google":{"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_LOCATION_EXTRA_COMMANDS\"/>","<uses-permission android:name=\"android.permission.ACCESS_MOCK_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.BIND_ACCESSIBILITY_SERVICE\"/>","<uses-permission android:name=\"android.permission.BIND_NOTIFICATION_LISTENER_SERVICE\"/>","<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.DEVICE_POWER\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.INJECT_EVENTS\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<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.USE_CREDENTIALS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"],"packagename":"uni.UNIB814B58","aliasname":"","password":"","keystore":"html5plus://test","custompermissions":true},"apple":{"dSYMs":false,"devices":"universal"},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}},"geolocation":{"system":{"__platform__":["android"]}}},"orientation":"portrait-primary"},"nativePlugins":{"Ba-KeepAliveSuit":{},"Ba-Websocket":{}},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.8.7","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html","adid":"122852140111"}}

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__B814B58","name":"齐鲁医院报警检测","version":{"name":"1.0.2","code":102},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Record":{},"VideoPlayer":{},"Geolocation":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","nativePlugins":{"Ba-KeepAliveSuit":{"__plugin_info__":{"name":"安卓保活套装(通用、常驻通知、电池优化、自启管理、后台运行等)","description":"在Ba-KeepAlive的基础上,新增了忽略电池优化、自启管理、常驻通知。为定位、推送、websocket、定时任务、蓝牙、聊天等保驾护航(**注意:**不保证支持所有机型和场景,建议先试用再购买)","platforms":"Android","url":"https://ext.dcloud.net.cn/plugin?id=11765","android_package_name":"uni.UNIB814B58","ios_bundle_id":"","isCloud":true,"bought":1,"pid":"11765","parameters":{}}}},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.8.7","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"}}
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__B814B58","name":"齐鲁医院报警检测","version":{"name":"1.0.2","code":102},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Record":{},"VideoPlayer":{},"Geolocation":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","nativePlugins":{"Ba-KeepAliveSuit":{"__plugin_info__":{"name":"安卓保活套装(通用、常驻通知、电池优化、自启管理、后台运行等)","description":"在Ba-KeepAlive的基础上,新增了忽略电池优化、自启管理、常驻通知。为定位、推送、websocket、定时任务、蓝牙、聊天等保驾护航(**注意:**不保证支持所有机型和场景,建议先试用再购买)","platforms":"Android","url":"https://ext.dcloud.net.cn/plugin?id=11765","android_package_name":"uni.UNIB814B58","ios_bundle_id":"","isCloud":true,"bought":1,"pid":"11765","parameters":{}}},"Ba-Websocket":{"__plugin_info__":{"name":"websocket原生服务(自动重连、心跳检测) Ba-Websocket","description":"Ba-Websocket 是一款原生websocket服务插件,可在后台运行。支持自动重连、心跳检测;支持常驻通知保活;支持监听websocket连接状态;支持多页面订阅消息等等。","platforms":"Android","url":"https://ext.dcloud.net.cn/plugin?id=10186","android_package_name":"uni.UNIB814B58","ios_bundle_id":"","isCloud":true,"bought":1,"pid":"10186","parameters":{}}}},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.8.7","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"}}
Loading…
Cancel
Save