初始化
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
// launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
|
||||||
|
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
|
||||||
|
"version" : "0.0",
|
||||||
|
"configurations" : [
|
||||||
|
{
|
||||||
|
"app-plus" : {
|
||||||
|
"launchtype" : "local"
|
||||||
|
},
|
||||||
|
"default" : {
|
||||||
|
"launchtype" : "local"
|
||||||
|
},
|
||||||
|
"type" : "uniCloud"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"playground" : "custom",
|
||||||
|
"type" : "uni-app:app-android"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
onLaunch: function() {
|
||||||
|
console.log('App Launch')
|
||||||
|
},
|
||||||
|
onShow: function() {
|
||||||
|
console.log('App Show')
|
||||||
|
},
|
||||||
|
onHide: function() {
|
||||||
|
console.log('App Hide')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/*每个页面公共css */
|
||||||
|
</style>
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<script>
|
||||||
|
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||||
|
CSS.supports('top: constant(a)'))
|
||||||
|
document.write(
|
||||||
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
|
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||||
|
</script>
|
||||||
|
<title></title>
|
||||||
|
<!--preload-links-->
|
||||||
|
<!--app-context-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"><!--app-html--></div>
|
||||||
|
<script type="module" src="/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,22 @@
|
||||||
|
import App from './App'
|
||||||
|
|
||||||
|
// #ifndef VUE3
|
||||||
|
import Vue from 'vue'
|
||||||
|
import './uni.promisify.adaptor'
|
||||||
|
Vue.config.productionTip = false
|
||||||
|
App.mpType = 'app'
|
||||||
|
const app = new Vue({
|
||||||
|
...App
|
||||||
|
})
|
||||||
|
app.$mount()
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// #ifdef VUE3
|
||||||
|
import { createSSRApp } from 'vue'
|
||||||
|
export function createApp() {
|
||||||
|
const app = createSSRApp(App)
|
||||||
|
return {
|
||||||
|
app
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// #endif
|
|
@ -0,0 +1,106 @@
|
||||||
|
{
|
||||||
|
"name" : "work_order",
|
||||||
|
"appid" : "__UNI__BAAC5A9",
|
||||||
|
"description" : "",
|
||||||
|
"versionName" : "1.0.0",
|
||||||
|
"versionCode" : "100",
|
||||||
|
"transformPx" : false,
|
||||||
|
/* 5+App特有相关 */
|
||||||
|
"app-plus" : {
|
||||||
|
"usingComponents" : true,
|
||||||
|
"nvueStyleCompiler" : "uni-app",
|
||||||
|
"compilerVersion" : 3,
|
||||||
|
"splashscreen" : {
|
||||||
|
"alwaysShowBeforeRender" : true,
|
||||||
|
"waiting" : true,
|
||||||
|
"autoclose" : true,
|
||||||
|
"delay" : 0
|
||||||
|
},
|
||||||
|
/* 模块配置 */
|
||||||
|
"modules" : {
|
||||||
|
"Geolocation" : {}
|
||||||
|
},
|
||||||
|
/* 应用发布信息 */
|
||||||
|
"distribute" : {
|
||||||
|
/* android打包配置 */
|
||||||
|
"android" : {
|
||||||
|
"permissions" : [
|
||||||
|
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||||
|
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||||
|
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
/* ios打包配置 */
|
||||||
|
"ios" : {
|
||||||
|
"dSYMs" : false
|
||||||
|
},
|
||||||
|
/* SDK配置 */
|
||||||
|
"sdkConfigs" : {
|
||||||
|
"geolocation" : {
|
||||||
|
"system" : {
|
||||||
|
"__platform__" : [ "ios", "android" ]
|
||||||
|
},
|
||||||
|
"amap" : {
|
||||||
|
"name" : "amaptOT5SLwK",
|
||||||
|
"__platform__" : [ "android" ],
|
||||||
|
"appkey_ios" : "",
|
||||||
|
"appkey_android" : "2ad33d95be57c3169cb881a7d2b1712f"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ad" : {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nativePlugins" : {
|
||||||
|
"SLY-AMapHelper" : {
|
||||||
|
"__plugin_info__" : {
|
||||||
|
"name" : "后台持续定位、轨迹追踪、可锁屏",
|
||||||
|
"description" : "基于高德地图的后台持续定位、轨迹追踪、后台保活、锁屏定位。已处理主流系统权限申请流程,省心快速接入,提供演示程序下载[问题反馈:404342398@qq.com]",
|
||||||
|
"platforms" : "Android",
|
||||||
|
"url" : "https://ext.dcloud.net.cn/plugin?id=6267",
|
||||||
|
"android_package_name" : "uni.UNIBAAC5A9",
|
||||||
|
"ios_bundle_id" : "",
|
||||||
|
"isCloud" : true,
|
||||||
|
"bought" : 1,
|
||||||
|
"pid" : "6267",
|
||||||
|
"parameters" : {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/* 快应用特有相关 */
|
||||||
|
"quickapp" : {},
|
||||||
|
/* 小程序特有相关 */
|
||||||
|
"mp-weixin" : {
|
||||||
|
"appid" : "",
|
||||||
|
"setting" : {
|
||||||
|
"urlCheck" : false
|
||||||
|
},
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"mp-alipay" : {
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"mp-baidu" : {
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"mp-toutiao" : {
|
||||||
|
"usingComponents" : true
|
||||||
|
},
|
||||||
|
"uniStatistics" : {
|
||||||
|
"enable" : false
|
||||||
|
},
|
||||||
|
"vueVersion" : "2"
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||||
|
{
|
||||||
|
"path": "pages/index/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "定位测试"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/test/test",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "",
|
||||||
|
"enablePullDownRefresh" : false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tabBar": {
|
||||||
|
"color": "#333",
|
||||||
|
"selectedColor": "#0074e8",
|
||||||
|
"borderStyle": "white",
|
||||||
|
"backgroundColor": "#eee",
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"pagePath": "pages/index/index",
|
||||||
|
"text": "高德"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/test/test",
|
||||||
|
"text": "本机"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"globalStyle": {
|
||||||
|
"navigationBarTextStyle": "black",
|
||||||
|
"navigationBarTitleText": "工单系统",
|
||||||
|
"navigationBarBackgroundColor": "#F8F8F8",
|
||||||
|
"backgroundColor": "#F8F8F8"
|
||||||
|
},
|
||||||
|
"uniIdRouter": {}
|
||||||
|
}
|
|
@ -0,0 +1,168 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- <button type="primary" @click="onceLocation">单次定位</button> -->
|
||||||
|
<button type="primary" @click="trackLocation">持续定位</button>
|
||||||
|
<button type="primary" @click="stopLocation">停止持续定位</button>
|
||||||
|
<!-- <button type="primary" @click="calcDistance">坐标距离计算</button> -->
|
||||||
|
<!-- <button type="primary" @click="onGeoQuery">坐标反查</button> -->
|
||||||
|
<!-- <button type="primary" @click="onRoutePlan">路径规划(唤起外部地图导航)</button> -->
|
||||||
|
<button type="primary" @click="switchCoordType">切换坐标系,当前:{{coordType}}</button>
|
||||||
|
<view class="">
|
||||||
|
<text :selectable="true">{{result}}</text>
|
||||||
|
</view>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
//引入插件
|
||||||
|
const aMapHelper = uni.requireNativePlugin("SLY-AMapHelper");
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
result: '',
|
||||||
|
coordTyps: ['gcj02', 'wgs84', 'bd09'],
|
||||||
|
coordIndex: 0,
|
||||||
|
myLng: 0,
|
||||||
|
myLat: 0,
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//退出页面后停止定位
|
||||||
|
onBackPress() {
|
||||||
|
aMapHelper.stopLocation();
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
coordType() {
|
||||||
|
return this.coordTyps[this.coordIndex]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//单次定位
|
||||||
|
onceLocation() {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '定位中...'
|
||||||
|
})
|
||||||
|
this.result = ''
|
||||||
|
aMapHelper.getLocation({
|
||||||
|
coordType: this.coordType
|
||||||
|
}, (res) => {
|
||||||
|
uni.hideLoading();
|
||||||
|
this.result = JSON.stringify(res)
|
||||||
|
if (res.errorCode == 0) {
|
||||||
|
this.myLng = res.longitude;
|
||||||
|
this.myLat = res.latitude;
|
||||||
|
this.result =
|
||||||
|
`
|
||||||
|
定位时间:${res.formatTime}
|
||||||
|
坐标:${res.longitude},${res.latitude}
|
||||||
|
坐标系:${res.coordType}
|
||||||
|
位置描述:${res.address}
|
||||||
|
`
|
||||||
|
} else if (res.errorCode == 12) { //用户拒绝定位权限
|
||||||
|
//当用户选择了“拒绝且不再询问”时,应用无法再弹出权限申请框,必须引导用户前往设置页面手动开启。
|
||||||
|
let deniedPermissionAndNoAsk = res.deniedPermissionAndNoAsk;
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: res.errorInfo,
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm && deniedPermissionAndNoAsk) {
|
||||||
|
//打开设置页面
|
||||||
|
aMapHelper.openSettingPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//连续定位
|
||||||
|
trackLocation() {
|
||||||
|
this.result = '';
|
||||||
|
let count = 0;
|
||||||
|
aMapHelper.trackLocation({
|
||||||
|
intervalTime: 3000, //定位间隔时间
|
||||||
|
spacing: 0, //有效移动距离,超过大于等于该值才会回调
|
||||||
|
notificationTitle: "自定义Title",
|
||||||
|
notificationContent: "自定义Content",
|
||||||
|
coordType: this.coordType
|
||||||
|
}, (res) => {
|
||||||
|
//调试时请以控制台日志是否持续打印为准,息屏后view页面可能不会更新result结果
|
||||||
|
console.log("【持续定位结果】", `时间:${res.formatTime},坐标:${res.longitude},${res.latitude}`);
|
||||||
|
if (res.errorCode == 0) {
|
||||||
|
this.result =
|
||||||
|
`
|
||||||
|
定位次数:${++count}
|
||||||
|
定位时间:${res.formatTime}
|
||||||
|
坐标:${res.longitude},${res.latitude}
|
||||||
|
坐标系:${res.coordType}
|
||||||
|
设备方向:${res.direction}
|
||||||
|
海拔:${res.altitude}米`
|
||||||
|
|
||||||
|
} else if (res.errorCode == 12) {
|
||||||
|
let deniedPermissionAndNoAsk = res.deniedPermissionAndNoAsk;
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: res.errorInfo,
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm && deniedPermissionAndNoAsk) {
|
||||||
|
aMapHelper.openSettingPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//停止定位
|
||||||
|
stopLocation() {
|
||||||
|
aMapHelper.stopLocation();
|
||||||
|
},
|
||||||
|
//计算坐标距离
|
||||||
|
calcDistance() {
|
||||||
|
let distance = aMapHelper.calcDistance({
|
||||||
|
lngLat1: [116.368904, 39.9234230],
|
||||||
|
lngLat2: [116.387271, 39.922501]
|
||||||
|
})
|
||||||
|
this.result = `距离:${distance}米`
|
||||||
|
},
|
||||||
|
//逆地址编码,即根据坐标反查位置信息
|
||||||
|
onGeoQuery() {
|
||||||
|
if (this.myLng == 0 || this.myLat == 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请先执行单次定位',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
aMapHelper.reGeoQuery({
|
||||||
|
lng: this.myLng,
|
||||||
|
lat: this.myLat,
|
||||||
|
radius: 200, //范围多少米
|
||||||
|
coordType: this.coordTyps[this.coordIndex] //火系坐标系还是GPS原生坐标系,仅支持"gcj02","wgs84"2中
|
||||||
|
}, res => {
|
||||||
|
console.log("逆地址结果", res);
|
||||||
|
if (res.errorCode == 0) {
|
||||||
|
//成功,更多结果,打印res.result
|
||||||
|
this.result = res.result.formatAddress
|
||||||
|
} else {
|
||||||
|
//失败
|
||||||
|
this.result = res.msg;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onRoutePlan() {
|
||||||
|
aMapHelper.routePlan({
|
||||||
|
sname: "春熙路", //可选,不传默认“我的位置”
|
||||||
|
slat: 30.654899, //可选,不传默认当前纬度
|
||||||
|
slng: 104.078657, //可选,
|
||||||
|
dname: "天府广场", //可选,不传默认“目的地”
|
||||||
|
dlat: 30.657401, //必填
|
||||||
|
dlng: 104.065861, //必填
|
||||||
|
})
|
||||||
|
},
|
||||||
|
switchCoordType() {
|
||||||
|
this.coordIndex = (this.coordIndex + 1) % 3;
|
||||||
|
aMapHelper.stopLocation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -0,0 +1,82 @@
|
||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<button type="primary" @click="open">开始定位(已获取{{count}}次)</button>
|
||||||
|
<button type="primary" @click="close">停止定位</button>
|
||||||
|
<view v-for="(item, index) in list" :key="index" :class="item.type==0?'green': 'red'">
|
||||||
|
<view>{{item.a}}</view>
|
||||||
|
<view style="color: #333;">{{item.b}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import addKeepalive from '../../uni_modules/fdm-keepalive'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
list: [],
|
||||||
|
timer: null,
|
||||||
|
count: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
addKeepalive()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
open(){
|
||||||
|
if(this.timer){
|
||||||
|
clearInterval(this.timer);
|
||||||
|
}else {
|
||||||
|
this.count++;
|
||||||
|
this.getAddress();
|
||||||
|
this.timer = setInterval(()=>{
|
||||||
|
this.count++;
|
||||||
|
this.getAddress();
|
||||||
|
}, 6*1000);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
close(){
|
||||||
|
clearInterval(this.timer);
|
||||||
|
},
|
||||||
|
getAddress(){
|
||||||
|
uni.getLocation({
|
||||||
|
geocode: true,
|
||||||
|
success:(res)=>{
|
||||||
|
console.log(res);
|
||||||
|
this.list.push({
|
||||||
|
type: 0,
|
||||||
|
a: '获取成功: '+this.formatDate(new Date()),
|
||||||
|
b: '位置:' + res.latitude + ',' + res.longitude
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail:(err)=> {
|
||||||
|
this.list.push({
|
||||||
|
type: 1,
|
||||||
|
a: '获取失败: '+this.formatDate(new Date()),
|
||||||
|
b: '错误:' + JSON.stringify(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
formatDate(date) {
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
const hours = String(date.getHours()).padStart(2, '0');
|
||||||
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||||
|
|
||||||
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.green{
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
.red{
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
</style>
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,10 @@
|
||||||
|
uni.addInterceptor({
|
||||||
|
returnValue (res) {
|
||||||
|
if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
|
@ -0,0 +1,76 @@
|
||||||
|
/**
|
||||||
|
* 这里是uni-app内置的常用样式变量
|
||||||
|
*
|
||||||
|
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||||
|
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||||
|
*
|
||||||
|
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* 颜色变量 */
|
||||||
|
|
||||||
|
/* 行为相关颜色 */
|
||||||
|
$uni-color-primary: #007aff;
|
||||||
|
$uni-color-success: #4cd964;
|
||||||
|
$uni-color-warning: #f0ad4e;
|
||||||
|
$uni-color-error: #dd524d;
|
||||||
|
|
||||||
|
/* 文字基本颜色 */
|
||||||
|
$uni-text-color:#333;//基本色
|
||||||
|
$uni-text-color-inverse:#fff;//反色
|
||||||
|
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
|
||||||
|
$uni-text-color-placeholder: #808080;
|
||||||
|
$uni-text-color-disable:#c0c0c0;
|
||||||
|
|
||||||
|
/* 背景颜色 */
|
||||||
|
$uni-bg-color:#ffffff;
|
||||||
|
$uni-bg-color-grey:#f8f8f8;
|
||||||
|
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
|
||||||
|
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
|
||||||
|
|
||||||
|
/* 边框颜色 */
|
||||||
|
$uni-border-color:#c8c7cc;
|
||||||
|
|
||||||
|
/* 尺寸变量 */
|
||||||
|
|
||||||
|
/* 文字尺寸 */
|
||||||
|
$uni-font-size-sm:12px;
|
||||||
|
$uni-font-size-base:14px;
|
||||||
|
$uni-font-size-lg:16;
|
||||||
|
|
||||||
|
/* 图片尺寸 */
|
||||||
|
$uni-img-size-sm:20px;
|
||||||
|
$uni-img-size-base:26px;
|
||||||
|
$uni-img-size-lg:40px;
|
||||||
|
|
||||||
|
/* Border Radius */
|
||||||
|
$uni-border-radius-sm: 2px;
|
||||||
|
$uni-border-radius-base: 3px;
|
||||||
|
$uni-border-radius-lg: 6px;
|
||||||
|
$uni-border-radius-circle: 50%;
|
||||||
|
|
||||||
|
/* 水平间距 */
|
||||||
|
$uni-spacing-row-sm: 5px;
|
||||||
|
$uni-spacing-row-base: 10px;
|
||||||
|
$uni-spacing-row-lg: 15px;
|
||||||
|
|
||||||
|
/* 垂直间距 */
|
||||||
|
$uni-spacing-col-sm: 4px;
|
||||||
|
$uni-spacing-col-base: 8px;
|
||||||
|
$uni-spacing-col-lg: 12px;
|
||||||
|
|
||||||
|
/* 透明度 */
|
||||||
|
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
|
||||||
|
|
||||||
|
/* 文章场景相关 */
|
||||||
|
$uni-color-title: #2C405A; // 文章标题颜色
|
||||||
|
$uni-font-size-title:20px;
|
||||||
|
$uni-color-subtitle: #555555; // 二级标题颜色
|
||||||
|
$uni-font-size-subtitle:26px;
|
||||||
|
$uni-color-paragraph: #3F536E; // 文章段落颜色
|
||||||
|
$uni-font-size-paragraph:15px;
|
|
@ -0,0 +1,6 @@
|
||||||
|
## 1.0.0(2023-05-19)
|
||||||
|
import addKeepalive from '../../uni_modules/fdm-keepalive'
|
||||||
|
在合适的地方调用该函数
|
||||||
|
addKeepalive();
|
||||||
|
会检测用户是否将软件退出电池优化 未退出会弹窗提示是否退出
|
||||||
|
注意 会开启唤醒锁且 唤醒锁只有在软件关闭时才会释放
|
|
@ -0,0 +1,83 @@
|
||||||
|
{
|
||||||
|
"id": "fdm-keepalive",
|
||||||
|
"displayName": "keepalive,fdm",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "keepalive 该插件会检测用户是否将软件退出电池优化 未退出会弹窗提示是否退出且会开启唤醒锁,一种类似加入白名单的保活思路",
|
||||||
|
"keywords": [
|
||||||
|
"fdm-keepalive"
|
||||||
|
],
|
||||||
|
"repository": "",
|
||||||
|
"engines": {
|
||||||
|
"HBuilderX": "^3.6.8"
|
||||||
|
},
|
||||||
|
"dcloudext": {
|
||||||
|
"type": "uts",
|
||||||
|
"sale": {
|
||||||
|
"regular": {
|
||||||
|
"price": "0.00"
|
||||||
|
},
|
||||||
|
"sourcecode": {
|
||||||
|
"price": "0.00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contact": {
|
||||||
|
"qq": ""
|
||||||
|
},
|
||||||
|
"declaration": {
|
||||||
|
"ads": "无",
|
||||||
|
"data": "插件不采集任何数据",
|
||||||
|
"permissions": "<uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\"/>\r\n<uses-permission android:name=\"android.permission.WAKE_LOCK\" />"
|
||||||
|
},
|
||||||
|
"npmurl": ""
|
||||||
|
},
|
||||||
|
"uni_modules": {
|
||||||
|
"dependencies": [],
|
||||||
|
"encrypt": [],
|
||||||
|
"platforms": {
|
||||||
|
"cloud": {
|
||||||
|
"tcb": "y",
|
||||||
|
"aliyun": "y"
|
||||||
|
},
|
||||||
|
"client": {
|
||||||
|
"Vue": {
|
||||||
|
"vue2": "y",
|
||||||
|
"vue3": "y"
|
||||||
|
},
|
||||||
|
"App": {
|
||||||
|
"app-android": {
|
||||||
|
"minVersion": "23"
|
||||||
|
},
|
||||||
|
"app-ios": "n"
|
||||||
|
},
|
||||||
|
"H5-mobile": {
|
||||||
|
"Safari": "n",
|
||||||
|
"Android Browser": "n",
|
||||||
|
"微信浏览器(Android)": "n",
|
||||||
|
"QQ浏览器(Android)": "n"
|
||||||
|
},
|
||||||
|
"H5-pc": {
|
||||||
|
"Chrome": "n",
|
||||||
|
"IE": "n",
|
||||||
|
"Edge": "n",
|
||||||
|
"Firefox": "n",
|
||||||
|
"Safari": "n"
|
||||||
|
},
|
||||||
|
"小程序": {
|
||||||
|
"微信": "n",
|
||||||
|
"阿里": "n",
|
||||||
|
"百度": "n",
|
||||||
|
"字节跳动": "n",
|
||||||
|
"QQ": "n",
|
||||||
|
"钉钉": "n",
|
||||||
|
"快手": "n",
|
||||||
|
"飞书": "n",
|
||||||
|
"京东": "n"
|
||||||
|
},
|
||||||
|
"快应用": {
|
||||||
|
"华为": "n",
|
||||||
|
"联盟": "n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
# fdm-keepalive
|
||||||
|
### 开发文档
|
||||||
|
[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
|
||||||
|
[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
|
||||||
|
[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
|
||||||
|
[Hello UTS](https://gitcode.net/dcloud/hello-uts)
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
package="io.dcloud.uni_modules.fdm_keepalive">
|
||||||
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
</manifest>
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"minSdkVersion": "23"
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
import Context from "android.content.Context";
|
||||||
|
import { UTSAndroid } from "io.dcloud.uts";
|
||||||
|
import PowerManager from 'android.os.PowerManager';
|
||||||
|
import Intent from 'android.content.Intent';
|
||||||
|
import Settings from 'android.provider.Settings';
|
||||||
|
import Uri from 'android.net.Uri';
|
||||||
|
|
||||||
|
class WakeLockHelper{
|
||||||
|
context: Context
|
||||||
|
private wakeLock: PowerManager.WakeLock | null = null;
|
||||||
|
constructor(context: Context){
|
||||||
|
this.context = context
|
||||||
|
}
|
||||||
|
acquireWakeLock(){
|
||||||
|
let powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;
|
||||||
|
this.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyApp::TestWakeLock");
|
||||||
|
this.wakeLock?.acquire();
|
||||||
|
}
|
||||||
|
releaseWakeLock() {
|
||||||
|
this.wakeLock?.release();
|
||||||
|
this.wakeLock = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function addKeepalive(){
|
||||||
|
const context = UTSAndroid.getAppContext();
|
||||||
|
const pageName = context!.getPackageName();
|
||||||
|
const manager = context!.getSystemService(
|
||||||
|
Context.POWER_SERVICE
|
||||||
|
) as PowerManager;
|
||||||
|
if(!manager.isIgnoringBatteryOptimizations(pageName)){
|
||||||
|
let jumpUrl: Uri = Uri.parse("package:" + pageName);
|
||||||
|
let intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
UTSAndroid.getAppContext()!.startActivity(intent);
|
||||||
|
}
|
||||||
|
let wakeCtrl = new WakeLockHelper(context);
|
||||||
|
wakeCtrl.acquireWakeLock();
|
||||||
|
console.log(manager.isInteractive());
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["uni_modules/fdm-keepalive/utssdk/app-android/index.uts"],"sourcesContent":["import Context from \"android.content.Context\";\nimport { UTSAndroid } from \"io.dcloud.uts\";\nimport PowerManager from 'android.os.PowerManager';\nimport Intent from 'android.content.Intent';\nimport Settings from 'android.provider.Settings';\nimport Uri from 'android.net.Uri';\n\nclass WakeLockHelper{\n\tcontext: Context\n\tprivate wakeLock: PowerManager.WakeLock | null = null;\n\tconstructor(context: Context){\n\t\tthis.context = context\n\t}\n\tacquireWakeLock(){\n\t\tlet powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;\n\t\tthis.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,\"MyApp::TestWakeLock\");\n\t\tthis.wakeLock?.acquire();\n\t}\n\treleaseWakeLock() {\n\t\tthis.wakeLock?.release();\n\t\tthis.wakeLock = null\n\t}\n}\n\nexport default function addKeepalive(){\n\tconst context = UTSAndroid.getAppContext();\n\tconst pageName = context!.getPackageName();\n\tconst manager = context!.getSystemService(\n\t\tContext.POWER_SERVICE\n\t) as PowerManager;\n\tif(!manager.isIgnoringBatteryOptimizations(pageName)){\n\t\tlet jumpUrl: Uri = Uri.parse(\"package:\" + pageName);\n\t\tlet intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);\n\t\tintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n\t\tUTSAndroid.getAppContext()!.startActivity(intent);\n\t}\n\tlet wakeCtrl = new WakeLockHelper(context);\n\twakeCtrl.acquireWakeLock();\n\tconsole.log(manager.isInteractive());\n}\n"],"names":[],"mappings":";;;;;;;AAAA,OAAoB,uBAAyB,CAAC;AAC9C;AACA,OAAyB,uBAAyB,CAAC;AACnD,OAAmB,sBAAwB,CAAC;AAC5C,OAAqB,yBAA2B,CAAC;AACjD,OAAgB,eAAiB,CAAC;AAElC,WAAM;IACL,SAAA,SAAS,QAAO;IAChB,YAAQ,UAAU,aAAa,YAAkB,IAAI,CAAC;IACtD,YAAY,SAAS,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG;IAChB;IACA,SAAA,kBAAiB;QAChB,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,aAAa,KAAK;QAC3E,IAAI,CAAC,QAAQ,GAAG,aAAa,WAAW,CAAC,aAAa,iBAAiB,EAAC;QACxE,IAAI,CAAC,QAAQ,EAAE;IAChB;IACA,SAAA,kBAAkB;QACjB,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI;IACrB;AACD;AAEe,IAAS,eAAc;IACrC,IAAM,UAAU,WAAW,aAAa;IACxC,IAAM,WAAW,UAAS,cAAc;IACxC,IAAM,UAAU,UAAS,gBAAgB,CACxC,QAAQ,aAAa,KACjB;IACL,IAAG,CAAC,QAAQ,8BAA8B,CAAC,WAAU;QACpD,IAAI,SAAS,MAAM,IAAI,KAAK,CAAC,aAAa;QAC1C,IAAI,SAAS,AAAI,OAAO,SAAS,2CAA2C,EAAE;QAC9E,OAAO,QAAQ,CAAC,OAAO,sBAAsB;QAC7C,WAAW,aAAa,KAAI,aAAa,CAAC;IAC3C;IACA,IAAI,WAAW,AAAI,eAAe;IAClC,SAAS,eAAe;IACxB,QAAQ,GAAG,CAAC,QAAQ,aAAa;AAClC"}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": "1",
|
||||||
|
"env": {
|
||||||
|
"compilerVersion": "3.0.0-3080720230630001"
|
||||||
|
},
|
||||||
|
"files": {
|
||||||
|
"utssdk/app-android/index.uts": {
|
||||||
|
"md5": "2941540f85b8319ebb4b1e037e800400"
|
||||||
|
},
|
||||||
|
"package.json": {
|
||||||
|
"md5": "abd8bdc28aa16ec02660cf67704aa18c"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/AndroidManifest.xml": {
|
||||||
|
"md5": "8ad9237e5e2a09e1aa7c64e9e981ff65"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/config.json": {
|
||||||
|
"md5": "c03b88b32cee2468ec84ccd94349139a"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
unpackage/cache/uts_custom_android/app-android/uts/uni_modules/fdm-keepalive/index.kt.map
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["uni_modules/fdm-keepalive/utssdk/app-android/index.uts"],"sourcesContent":["import Context from \"android.content.Context\";\nimport { UTSAndroid } from \"io.dcloud.uts\";\nimport PowerManager from 'android.os.PowerManager';\nimport Intent from 'android.content.Intent';\nimport Settings from 'android.provider.Settings';\nimport Uri from 'android.net.Uri';\n\nclass WakeLockHelper{\n\tcontext: Context\n\tprivate wakeLock: PowerManager.WakeLock | null = null;\n\tconstructor(context: Context){\n\t\tthis.context = context\n\t}\n\tacquireWakeLock(){\n\t\tlet powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;\n\t\tthis.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,\"MyApp::TestWakeLock\");\n\t\tthis.wakeLock?.acquire();\n\t}\n\treleaseWakeLock() {\n\t\tthis.wakeLock?.release();\n\t\tthis.wakeLock = null\n\t}\n}\n\nexport default function addKeepalive(){\n\tconst context = UTSAndroid.getAppContext();\n\tconst pageName = context!.getPackageName();\n\tconst manager = context!.getSystemService(\n\t\tContext.POWER_SERVICE\n\t) as PowerManager;\n\tif(!manager.isIgnoringBatteryOptimizations(pageName)){\n\t\tlet jumpUrl: Uri = Uri.parse(\"package:\" + pageName);\n\t\tlet intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);\n\t\tintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n\t\tUTSAndroid.getAppContext()!.startActivity(intent);\n\t}\n\tlet wakeCtrl = new WakeLockHelper(context);\n\twakeCtrl.acquireWakeLock();\n\tconsole.log(manager.isInteractive());\n}\n"],"names":[],"mappings":";;;;;;;AAAA,OAAoB,uBAAyB,CAAC;AAC9C;AACA,OAAyB,uBAAyB,CAAC;AACnD,OAAmB,sBAAwB,CAAC;AAC5C,OAAqB,yBAA2B,CAAC;AACjD,OAAgB,eAAiB,CAAC;AAElC,WAAM;IACL,SAAA,SAAS,QAAO;IAChB,YAAQ,UAAU,aAAa,YAAkB,IAAI,CAAC;IACtD,YAAY,SAAS,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG;IAChB;IACA,SAAA,kBAAiB;QAChB,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,aAAa,KAAK;QAC3E,IAAI,CAAC,QAAQ,GAAG,aAAa,WAAW,CAAC,aAAa,iBAAiB,EAAC;QACxE,IAAI,CAAC,QAAQ,EAAE;IAChB;IACA,SAAA,kBAAkB;QACjB,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI;IACrB;AACD;AAEe,IAAS,eAAc;IACrC,IAAM,UAAU,WAAW,aAAa;IACxC,IAAM,WAAW,UAAS,cAAc;IACxC,IAAM,UAAU,UAAS,gBAAgB,CACxC,QAAQ,aAAa,KACjB;IACL,IAAG,CAAC,QAAQ,8BAA8B,CAAC,WAAU;QACpD,IAAI,SAAS,MAAM,IAAI,KAAK,CAAC,aAAa;QAC1C,IAAI,SAAS,AAAI,OAAO,SAAS,2CAA2C,EAAE;QAC9E,OAAO,QAAQ,CAAC,OAAO,sBAAsB;QAC7C,WAAW,aAAa,KAAI,aAAa,CAAC;IAC3C;IACA,IAAI,WAAW,AAAI,eAAe;IAClC,SAAS,eAAe;IACxB,QAAQ,GAAG,CAAC,QAAQ,aAAa;AAClC"}
|
20
unpackage/cache/uts_custom_android/app-android/uts/uni_modules/fdm-keepalive/manifest.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": "1",
|
||||||
|
"env": {
|
||||||
|
"compilerVersion": "3.99.2023122611"
|
||||||
|
},
|
||||||
|
"files": {
|
||||||
|
"utssdk/app-android/index.uts": {
|
||||||
|
"md5": "2941540f85b8319ebb4b1e037e800400"
|
||||||
|
},
|
||||||
|
"package.json": {
|
||||||
|
"md5": "abd8bdc28aa16ec02660cf67704aa18c"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/AndroidManifest.xml": {
|
||||||
|
"md5": "8ad9237e5e2a09e1aa7c64e9e981ff65"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/config.json": {
|
||||||
|
"md5": "c03b88b32cee2468ec84ccd94349139a"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
unpackage/cache/uts_standard_android/app-android/uts/uni_modules/fdm-keepalive/classes.dex
vendored
Normal file
BIN
unpackage/cache/uts_standard_android/app-android/uts/uni_modules/fdm-keepalive/index.jar
vendored
Normal file
1
unpackage/cache/uts_standard_android/app-android/uts/uni_modules/fdm-keepalive/index.kt.map
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["uni_modules/fdm-keepalive/utssdk/app-android/index.uts"],"sourcesContent":["import Context from \"android.content.Context\";\nimport { UTSAndroid } from \"io.dcloud.uts\";\nimport PowerManager from 'android.os.PowerManager';\nimport Intent from 'android.content.Intent';\nimport Settings from 'android.provider.Settings';\nimport Uri from 'android.net.Uri';\n\nclass WakeLockHelper{\n\tcontext: Context\n\tprivate wakeLock: PowerManager.WakeLock | null = null;\n\tconstructor(context: Context){\n\t\tthis.context = context\n\t}\n\tacquireWakeLock(){\n\t\tlet powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;\n\t\tthis.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,\"MyApp::TestWakeLock\");\n\t\tthis.wakeLock?.acquire();\n\t}\n\treleaseWakeLock() {\n\t\tthis.wakeLock?.release();\n\t\tthis.wakeLock = null\n\t}\n}\n\nexport default function addKeepalive(){\n\tconst context = UTSAndroid.getAppContext();\n\tconst pageName = context!.getPackageName();\n\tconst manager = context!.getSystemService(\n\t\tContext.POWER_SERVICE\n\t) as PowerManager;\n\tif(!manager.isIgnoringBatteryOptimizations(pageName)){\n\t\tlet jumpUrl: Uri = Uri.parse(\"package:\" + pageName);\n\t\tlet intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);\n\t\tintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n\t\tUTSAndroid.getAppContext()!.startActivity(intent);\n\t}\n\tlet wakeCtrl = new WakeLockHelper(context);\n\twakeCtrl.acquireWakeLock();\n\tconsole.log(manager.isInteractive());\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAoB,uBAAyB,CAAC;AAG9C,OAAmB,sBAAwB,CAAC;AAD5C,OAAyB,uBAAyB,CAAC;AAEnD,OAAqB,yBAA2B,CAAC;AAHjD,qBAAS;AAIT,OAAgB,eAAiB,CAAC;AAElC,WAAM;IACL,SAAA,SAAS,QAAO;IAChB,YAAQ,UAAU,aAAa,YAAkB,IAAI,CAAC;IACtD,YAAY,SAAS,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG;IAChB;IACA,SAAA,kBAAiB;QAChB,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,aAAa,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,QAAQ,GAAG,aAAa,WAAW,CAAC,aAAa,iBAAiB,EAAC;QACxE,IAAI,CAAC,QAAQ,EAAE;IAChB;IACA,SAAA,kBAAkB;QACjB,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI;IACrB;AACD;AAEe,IAAS,eAAc;IACrC,IAAM,UAAU,WAAW,aAAa;IACxC,IAAM,WAAW,UAAS,cAAc;IACxC,IAAM,UAAU,UAAS,gBAAgB,CACxC,QAAQ,aAAa,EACpB,EAAE,CAAC;IACL,IAAG,CAAC,QAAQ,8BAA8B,CAAC,WAAU;QACpD,IAAI,SAAS,MAAM,IAAI,KAAK,CAAC,aAAa;QAC1C,IAAI,SAAS,AAAI,OAAO,SAAS,2CAA2C,EAAE;QAC9E,OAAO,QAAQ,CAAC,OAAO,sBAAsB;QAC7C,WAAW,aAAa,KAAI,aAAa,CAAC;IAC3C;IACA,IAAI,WAAW,AAAI,eAAe;IAClC,SAAS,eAAe;IACxB,QAAQ,GAAG,CAAC,QAAQ,aAAa;AAClC"}
|
20
unpackage/cache/uts_standard_android/app-android/uts/uni_modules/fdm-keepalive/manifest.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": "1",
|
||||||
|
"env": {
|
||||||
|
"compilerVersion": "3.99.2023122611"
|
||||||
|
},
|
||||||
|
"files": {
|
||||||
|
"utssdk/app-android/index.uts": {
|
||||||
|
"md5": "2941540f85b8319ebb4b1e037e800400"
|
||||||
|
},
|
||||||
|
"package.json": {
|
||||||
|
"md5": "abd8bdc28aa16ec02660cf67704aa18c"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/AndroidManifest.xml": {
|
||||||
|
"md5": "8ad9237e5e2a09e1aa7c64e9e981ff65"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/config.json": {
|
||||||
|
"md5": "c03b88b32cee2468ec84ccd94349139a"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["uni_modules/fdm-keepalive/utssdk/app-android/index.uts"],"sourcesContent":["import Context from \"android.content.Context\";\nimport { UTSAndroid } from \"io.dcloud.uts\";\nimport PowerManager from 'android.os.PowerManager';\nimport Intent from 'android.content.Intent';\nimport Settings from 'android.provider.Settings';\nimport Uri from 'android.net.Uri';\n\nclass WakeLockHelper{\n\tcontext: Context\n\tprivate wakeLock: PowerManager.WakeLock | null = null;\n\tconstructor(context: Context){\n\t\tthis.context = context\n\t}\n\tacquireWakeLock(){\n\t\tlet powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;\n\t\tthis.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,\"MyApp::TestWakeLock\");\n\t\tthis.wakeLock?.acquire();\n\t}\n\treleaseWakeLock() {\n\t\tthis.wakeLock?.release();\n\t\tthis.wakeLock = null\n\t}\n}\n\nexport default function addKeepalive(){\n\tconst context = UTSAndroid.getAppContext();\n\tconst pageName = context!.getPackageName();\n\tconst manager = context!.getSystemService(\n\t\tContext.POWER_SERVICE\n\t) as PowerManager;\n\tif(!manager.isIgnoringBatteryOptimizations(pageName)){\n\t\tlet jumpUrl: Uri = Uri.parse(\"package:\" + pageName);\n\t\tlet intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);\n\t\tintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n\t\tUTSAndroid.getAppContext()!.startActivity(intent);\n\t}\n\tlet wakeCtrl = new WakeLockHelper(context);\n\twakeCtrl.acquireWakeLock();\n\tconsole.log(manager.isInteractive());\n}\n"],"names":[],"mappings":";;;;;;;AAAA,OAAoB,uBAAyB,CAAC;AAC9C;AACA,OAAyB,uBAAyB,CAAC;AACnD,OAAmB,sBAAwB,CAAC;AAC5C,OAAqB,yBAA2B,CAAC;AACjD,OAAgB,eAAiB,CAAC;AAElC,WAAM;IACL,SAAA,SAAS,QAAO;IAChB,YAAQ,UAAU,aAAa,YAAkB,IAAI,CAAC;IACtD,YAAY,SAAS,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG;IAChB;IACA,SAAA,kBAAiB;QAChB,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,aAAa,KAAK;QAC3E,IAAI,CAAC,QAAQ,GAAG,aAAa,WAAW,CAAC,aAAa,iBAAiB,EAAC;QACxE,IAAI,CAAC,QAAQ,EAAE;IAChB;IACA,SAAA,kBAAkB;QACjB,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI;IACrB;AACD;AAEe,IAAS,eAAc;IACrC,IAAM,UAAU,WAAW,aAAa;IACxC,IAAM,WAAW,UAAS,cAAc;IACxC,IAAM,UAAU,UAAS,gBAAgB,CACxC,QAAQ,aAAa,KACjB;IACL,IAAG,CAAC,QAAQ,8BAA8B,CAAC,WAAU;QACpD,IAAI,SAAS,MAAM,IAAI,KAAK,CAAC,aAAa;QAC1C,IAAI,SAAS,AAAI,OAAO,SAAS,2CAA2C,EAAE;QAC9E,OAAO,QAAQ,CAAC,OAAO,sBAAsB;QAC7C,WAAW,aAAa,KAAI,aAAa,CAAC;IAC3C;IACA,IAAI,WAAW,AAAI,eAAe;IAClC,SAAS,eAAe;IACxB,QAAQ,GAAG,CAAC,QAAQ,aAAa;AAClC"}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": "1",
|
||||||
|
"env": {
|
||||||
|
"compilerVersion": "3.99.2023122611"
|
||||||
|
},
|
||||||
|
"files": {
|
||||||
|
"utssdk/app-android/index.uts": {
|
||||||
|
"md5": "2941540f85b8319ebb4b1e037e800400"
|
||||||
|
},
|
||||||
|
"package.json": {
|
||||||
|
"md5": "abd8bdc28aa16ec02660cf67704aa18c"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/AndroidManifest.xml": {
|
||||||
|
"md5": "8ad9237e5e2a09e1aa7c64e9e981ff65"
|
||||||
|
},
|
||||||
|
"utssdk/app-android/config.json": {
|
||||||
|
"md5": "c03b88b32cee2468ec84ccd94349139a"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<script>
|
||||||
|
var __UniViewStartTime__ = Date.now();
|
||||||
|
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||||
|
CSS.supports('top: constant(a)'))
|
||||||
|
document.write(
|
||||||
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
|
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||||
|
</script>
|
||||||
|
<title>View</title>
|
||||||
|
<link rel="stylesheet" href="view.css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="__uniappes6.js"></script>
|
||||||
|
<script src="view.umd.min.js"></script>
|
||||||
|
<script src="app-view.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
var isReady=false;var onReadyCallbacks=[];
|
||||||
|
var isServiceReady=false;var onServiceReadyCallbacks=[];
|
||||||
|
var __uniConfig = {"pages":["pages/index/index","pages/test/test"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"工单系统","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"work_order","compilerVersion":"3.99","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
|
||||||
|
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true},"window":{"navigationBarTitleText":"定位测试"}},{"path":"/pages/test/test","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}}];
|
||||||
|
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});
|
|
@ -0,0 +1 @@
|
||||||
|
(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);
|
|
@ -0,0 +1 @@
|
||||||
|
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__BAAC5A9","name":"work_order","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"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,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>"],"packagename":"uni.UNIBAAC5A9","custompermissions":true},"apple":{"dSYMs":false,"plistcmds":["Add :UIFileSharingEnabled bool true"],"devices":"universal"},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}},"geolocation":{"amap":{"__platform__":["android"],"appkey_android":"2ad33d95be57c3169cb881a7d2b1712f","appkey_ios":"","name":"amaptOT5SLwK"},"system":{"__platform__":["ios","android"]}}},"debug":true,"syncDebug":true,"orientation":"portrait-primary"},"nativePlugins":{"SLY-AMapHelper":{}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.99","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html","adid":"120478170009"}}
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
package="io.dcloud.uni_modules.fdm_keepalive">
|
||||||
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
</manifest>
|
3
unpackage/cache/wgt/__UNI__BAAC5A9/uni_modules/fdm-keepalive/utssdk/app-android/config.json
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"minSdkVersion": "23"
|
||||||
|
}
|
49
unpackage/cache/wgt/__UNI__BAAC5A9/uni_modules/fdm-keepalive/utssdk/app-android/src/index.kt
vendored
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
package uts.sdk.modules.fdmKeepalive;
|
||||||
|
import io.dcloud.uniapp.*;
|
||||||
|
import io.dcloud.uniapp.extapi.*;
|
||||||
|
import io.dcloud.uts.*;
|
||||||
|
import io.dcloud.uts.Map;
|
||||||
|
import io.dcloud.uts.Set;
|
||||||
|
import kotlinx.coroutines.CoroutineScope;
|
||||||
|
import kotlinx.coroutines.Deferred;
|
||||||
|
import kotlinx.coroutines.Dispatchers;
|
||||||
|
import kotlinx.coroutines.async;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.PowerManager;
|
||||||
|
import android.provider.Settings;
|
||||||
|
import io.dcloud.uts.UTSAndroid;
|
||||||
|
import android.net.Uri;
|
||||||
|
open class WakeLockHelper {
|
||||||
|
open var context: Context;
|
||||||
|
private var wakeLock: PowerManager.WakeLock? = null;
|
||||||
|
constructor(context: Context){
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
open fun acquireWakeLock() {
|
||||||
|
var powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;
|
||||||
|
this.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::TestWakeLock");
|
||||||
|
this.wakeLock?.acquire();
|
||||||
|
}
|
||||||
|
open fun releaseWakeLock() {
|
||||||
|
this.wakeLock?.release();
|
||||||
|
this.wakeLock = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fun addKeepalive() {
|
||||||
|
val context = UTSAndroid.getAppContext();
|
||||||
|
val pageName = context!!.getPackageName();
|
||||||
|
val manager = context!!.getSystemService(Context.POWER_SERVICE) as PowerManager;
|
||||||
|
if (!manager.isIgnoringBatteryOptimizations(pageName)) {
|
||||||
|
var jumpUrl: Uri = Uri.parse("package:" + pageName);
|
||||||
|
var intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
UTSAndroid.getAppContext()!!.startActivity(intent);
|
||||||
|
}
|
||||||
|
var wakeCtrl = WakeLockHelper(context);
|
||||||
|
wakeCtrl.acquireWakeLock();
|
||||||
|
console.log(manager.isInteractive(), " at uni_modules/fdm-keepalive/utssdk/app-android/index.uts:39");
|
||||||
|
}
|
||||||
|
fun addKeepaliveByJs() {
|
||||||
|
return addKeepalive();
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["uni_modules/fdm-keepalive/utssdk/app-android/index.uts"],"sourcesContent":["import Context from \"android.content.Context\";\nimport { UTSAndroid } from \"io.dcloud.uts\";\nimport PowerManager from 'android.os.PowerManager';\nimport Intent from 'android.content.Intent';\nimport Settings from 'android.provider.Settings';\nimport Uri from 'android.net.Uri';\n\nclass WakeLockHelper{\n\tcontext: Context\n\tprivate wakeLock: PowerManager.WakeLock | null = null;\n\tconstructor(context: Context){\n\t\tthis.context = context\n\t}\n\tacquireWakeLock(){\n\t\tlet powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;\n\t\tthis.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,\"MyApp::TestWakeLock\");\n\t\tthis.wakeLock?.acquire();\n\t}\n\treleaseWakeLock() {\n\t\tthis.wakeLock?.release();\n\t\tthis.wakeLock = null\n\t}\n}\n\nexport default function addKeepalive(){\n\tconst context = UTSAndroid.getAppContext();\n\tconst pageName = context!.getPackageName();\n\tconst manager = context!.getSystemService(\n\t\tContext.POWER_SERVICE\n\t) as PowerManager;\n\tif(!manager.isIgnoringBatteryOptimizations(pageName)){\n\t\tlet jumpUrl: Uri = Uri.parse(\"package:\" + pageName);\n\t\tlet intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);\n\t\tintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n\t\tUTSAndroid.getAppContext()!.startActivity(intent);\n\t}\n\tlet wakeCtrl = new WakeLockHelper(context);\n\twakeCtrl.acquireWakeLock();\n\tconsole.log(manager.isInteractive());\n}\n"],"names":[],"mappings":";;;;;;;AAAA,OAAoB,uBAAyB,CAAC;AAC9C;AACA,OAAyB,uBAAyB,CAAC;AACnD,OAAmB,sBAAwB,CAAC;AAC5C,OAAqB,yBAA2B,CAAC;AACjD,OAAgB,eAAiB,CAAC;AAElC,WAAM;IACL,SAAA,SAAS,QAAO;IAChB,YAAQ,UAAU,aAAa,YAAkB,IAAI,CAAC;IACtD,YAAY,SAAS,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG;IAChB;IACA,SAAA,kBAAiB;QAChB,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,aAAa,KAAK;QAC3E,IAAI,CAAC,QAAQ,GAAG,aAAa,WAAW,CAAC,aAAa,iBAAiB,EAAC;QACxE,IAAI,CAAC,QAAQ,EAAE;IAChB;IACA,SAAA,kBAAkB;QACjB,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI;IACrB;AACD;AAEe,IAAS,eAAc;IACrC,IAAM,UAAU,WAAW,aAAa;IACxC,IAAM,WAAW,UAAS,cAAc;IACxC,IAAM,UAAU,UAAS,gBAAgB,CACxC,QAAQ,aAAa,KACjB;IACL,IAAG,CAAC,QAAQ,8BAA8B,CAAC,WAAU;QACpD,IAAI,SAAS,MAAM,IAAI,KAAK,CAAC,aAAa;QAC1C,IAAI,SAAS,AAAI,OAAO,SAAS,2CAA2C,EAAE;QAC9E,OAAO,QAAQ,CAAC,OAAO,sBAAsB;QAC7C,WAAW,aAAa,KAAI,aAAa,CAAC;IAC3C;IACA,IAAI,WAAW,AAAI,eAAe;IAClC,SAAS,eAAe;IACxB,QAAQ,GAAG,CAAC,QAAQ,aAAa;AAClC"}
|
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<script>
|
||||||
|
var __UniViewStartTime__ = Date.now();
|
||||||
|
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||||
|
CSS.supports('top: constant(a)'))
|
||||||
|
document.write(
|
||||||
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
|
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||||
|
</script>
|
||||||
|
<title>View</title>
|
||||||
|
<link rel="stylesheet" href="view.css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="__uniappes6.js"></script>
|
||||||
|
<script src="view.umd.min.js"></script>
|
||||||
|
<script src="app-view.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
var isReady=false;var onReadyCallbacks=[];
|
||||||
|
var isServiceReady=false;var onServiceReadyCallbacks=[];
|
||||||
|
var __uniConfig = {"pages":["pages/index/index","pages/test/test"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"工单系统","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#333","selectedColor":"#0074e8","borderStyle":"white","backgroundColor":"#eee","list":[{"pagePath":"pages/index/index","text":"高德"},{"pagePath":"pages/test/test","text":"本机"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"work_order","compilerVersion":"3.99","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
|
||||||
|
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"定位测试"}},{"path":"/pages/test/test","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}}];
|
||||||
|
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});
|
|
@ -0,0 +1 @@
|
||||||
|
(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);
|
|
@ -0,0 +1 @@
|
||||||
|
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__BAAC5A9","name":"work_order","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Geolocation":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>"]},"apple":{"dSYMs":false},"plugins":{"geolocation":{"system":{"__platform__":["ios","android"]},"amap":{"name":"amaptOT5SLwK","__platform__":["android"],"appkey_ios":"","appkey_android":"2ad33d95be57c3169cb881a7d2b1712f"}},"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"nativePlugins":{"SLY-AMapHelper":{"__plugin_info__":{"name":"后台持续定位、轨迹追踪、可锁屏","description":"基于高德地图的后台持续定位、轨迹追踪、后台保活、锁屏定位。已处理主流系统权限申请流程,省心快速接入,提供演示程序下载[问题反馈:404342398@qq.com]","platforms":"Android","url":"https://ext.dcloud.net.cn/plugin?id=6267","android_package_name":"uni.UNIBAAC5A9","ios_bundle_id":"","isCloud":true,"bought":1,"pid":"6267","parameters":{}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#eee","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"3.99","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#333","selectedColor":"#0074e8","borderStyle":"rgba(255,255,255,0.4)","backgroundColor":"#eee","list":[{"pagePath":"pages/index/index","text":"高德"},{"pagePath":"pages/test/test","text":"本机"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
package="io.dcloud.uni_modules.fdm_keepalive">
|
||||||
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
</manifest>
|
3
unpackage/dist/build/app-plus/uni_modules/fdm-keepalive/utssdk/app-android/config.json
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"minSdkVersion": "23"
|
||||||
|
}
|
49
unpackage/dist/build/app-plus/uni_modules/fdm-keepalive/utssdk/app-android/src/index.kt
vendored
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
package uts.sdk.modules.fdmKeepalive;
|
||||||
|
import io.dcloud.uniapp.*;
|
||||||
|
import io.dcloud.uniapp.extapi.*;
|
||||||
|
import io.dcloud.uts.*;
|
||||||
|
import io.dcloud.uts.Map;
|
||||||
|
import io.dcloud.uts.Set;
|
||||||
|
import kotlinx.coroutines.CoroutineScope;
|
||||||
|
import kotlinx.coroutines.Deferred;
|
||||||
|
import kotlinx.coroutines.Dispatchers;
|
||||||
|
import kotlinx.coroutines.async;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.PowerManager;
|
||||||
|
import android.provider.Settings;
|
||||||
|
import io.dcloud.uts.UTSAndroid;
|
||||||
|
import android.net.Uri;
|
||||||
|
open class WakeLockHelper {
|
||||||
|
open var context: Context;
|
||||||
|
private var wakeLock: PowerManager.WakeLock? = null;
|
||||||
|
constructor(context: Context){
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
open fun acquireWakeLock() {
|
||||||
|
var powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;
|
||||||
|
this.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::TestWakeLock");
|
||||||
|
this.wakeLock?.acquire();
|
||||||
|
}
|
||||||
|
open fun releaseWakeLock() {
|
||||||
|
this.wakeLock?.release();
|
||||||
|
this.wakeLock = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fun addKeepalive() {
|
||||||
|
val context = UTSAndroid.getAppContext();
|
||||||
|
val pageName = context!!.getPackageName();
|
||||||
|
val manager = context!!.getSystemService(Context.POWER_SERVICE) as PowerManager;
|
||||||
|
if (!manager.isIgnoringBatteryOptimizations(pageName)) {
|
||||||
|
var jumpUrl: Uri = Uri.parse("package:" + pageName);
|
||||||
|
var intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
UTSAndroid.getAppContext()!!.startActivity(intent);
|
||||||
|
}
|
||||||
|
var wakeCtrl = WakeLockHelper(context);
|
||||||
|
wakeCtrl.acquireWakeLock();
|
||||||
|
console.log(manager.isInteractive(), " at uni_modules/fdm-keepalive/utssdk/app-android/index.uts:39");
|
||||||
|
}
|
||||||
|
fun addKeepaliveByJs() {
|
||||||
|
return addKeepalive();
|
||||||
|
}
|
1
unpackage/dist/dev/.sourcemap/app/uni_modules/fdm-keepalive/utssdk/app-android/index.kt.map
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["uni_modules/fdm-keepalive/utssdk/app-android/index.uts"],"sourcesContent":["import Context from \"android.content.Context\";\nimport { UTSAndroid } from \"io.dcloud.uts\";\nimport PowerManager from 'android.os.PowerManager';\nimport Intent from 'android.content.Intent';\nimport Settings from 'android.provider.Settings';\nimport Uri from 'android.net.Uri';\n\nclass WakeLockHelper{\n\tcontext: Context\n\tprivate wakeLock: PowerManager.WakeLock | null = null;\n\tconstructor(context: Context){\n\t\tthis.context = context\n\t}\n\tacquireWakeLock(){\n\t\tlet powerManager = this.context.getSystemService(Context.POWER_SERVICE) as PowerManager;\n\t\tthis.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,\"MyApp::TestWakeLock\");\n\t\tthis.wakeLock?.acquire();\n\t}\n\treleaseWakeLock() {\n\t\tthis.wakeLock?.release();\n\t\tthis.wakeLock = null\n\t}\n}\n\nexport default function addKeepalive(){\n\tconst context = UTSAndroid.getAppContext();\n\tconst pageName = context!.getPackageName();\n\tconst manager = context!.getSystemService(\n\t\tContext.POWER_SERVICE\n\t) as PowerManager;\n\tif(!manager.isIgnoringBatteryOptimizations(pageName)){\n\t\tlet jumpUrl: Uri = Uri.parse(\"package:\" + pageName);\n\t\tlet intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, jumpUrl);\n\t\tintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n\t\tUTSAndroid.getAppContext()!.startActivity(intent);\n\t}\n\tlet wakeCtrl = new WakeLockHelper(context);\n\twakeCtrl.acquireWakeLock();\n\tconsole.log(manager.isInteractive());\n}\n"],"names":[],"mappings":";;;;;;;AAAA,OAAoB,uBAAyB,CAAC;AAC9C;AACA,OAAyB,uBAAyB,CAAC;AACnD,OAAmB,sBAAwB,CAAC;AAC5C,OAAqB,yBAA2B,CAAC;AACjD,OAAgB,eAAiB,CAAC;AAElC,WAAM;IACL,SAAA,SAAS,QAAO;IAChB,YAAQ,UAAU,aAAa,YAAkB,IAAI,CAAC;IACtD,YAAY,SAAS,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG;IAChB;IACA,SAAA,kBAAiB;QAChB,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,aAAa,KAAK;QAC3E,IAAI,CAAC,QAAQ,GAAG,aAAa,WAAW,CAAC,aAAa,iBAAiB,EAAC;QACxE,IAAI,CAAC,QAAQ,EAAE;IAChB;IACA,SAAA,kBAAkB;QACjB,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI;IACrB;AACD;AAEe,IAAS,eAAc;IACrC,IAAM,UAAU,WAAW,aAAa;IACxC,IAAM,WAAW,UAAS,cAAc;IACxC,IAAM,UAAU,UAAS,gBAAgB,CACxC,QAAQ,aAAa,KACjB;IACL,IAAG,CAAC,QAAQ,8BAA8B,CAAC,WAAU;QACpD,IAAI,SAAS,MAAM,IAAI,KAAK,CAAC,aAAa;QAC1C,IAAI,SAAS,AAAI,OAAO,SAAS,2CAA2C,EAAE;QAC9E,OAAO,QAAQ,CAAC,OAAO,sBAAsB;QAC7C,WAAW,aAAa,KAAI,aAAa,CAAC;IAC3C;IACA,IAAI,WAAW,AAAI,eAAe;IAClC,SAAS,eAAe;IACxB,QAAQ,GAAG,CAAC,QAAQ,aAAa;AAClC"}
|
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<script>
|
||||||
|
var __UniViewStartTime__ = Date.now();
|
||||||
|
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||||
|
CSS.supports('top: constant(a)'))
|
||||||
|
document.write(
|
||||||
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
|
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||||
|
</script>
|
||||||
|
<title>View</title>
|
||||||
|
<link rel="stylesheet" href="view.css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="__uniappes6.js"></script>
|
||||||
|
<script src="view.umd.min.js"></script>
|
||||||
|
<script src="app-view.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
var isReady=false;var onReadyCallbacks=[];
|
||||||
|
var isServiceReady=false;var onServiceReadyCallbacks=[];
|
||||||
|
var __uniConfig = {"pages":["pages/index/index","pages/test/test"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"工单系统","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#333","selectedColor":"#0074e8","borderStyle":"white","backgroundColor":"#eee","list":[{"pagePath":"pages/index/index","text":"高德"},{"pagePath":"pages/test/test","text":"本机"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"work_order","compilerVersion":"3.99","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
|
||||||
|
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"定位测试"}},{"path":"/pages/test/test","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}}];
|
||||||
|
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});
|
|
@ -0,0 +1,154 @@
|
||||||
|
/******/ (function(modules) { // webpackBootstrap
|
||||||
|
/******/ // install a JSONP callback for chunk loading
|
||||||
|
/******/ function webpackJsonpCallback(data) {
|
||||||
|
/******/ var chunkIds = data[0];
|
||||||
|
/******/ var moreModules = data[1];
|
||||||
|
/******/ var executeModules = data[2];
|
||||||
|
/******/
|
||||||
|
/******/ // add "moreModules" to the modules object,
|
||||||
|
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||||
|
/******/ var moduleId, chunkId, i = 0, resolves = [];
|
||||||
|
/******/ for(;i < chunkIds.length; i++) {
|
||||||
|
/******/ chunkId = chunkIds[i];
|
||||||
|
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
|
||||||
|
/******/ resolves.push(installedChunks[chunkId][0]);
|
||||||
|
/******/ }
|
||||||
|
/******/ installedChunks[chunkId] = 0;
|
||||||
|
/******/ }
|
||||||
|
/******/ for(moduleId in moreModules) {
|
||||||
|
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
||||||
|
/******/ modules[moduleId] = moreModules[moduleId];
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
|
||||||
|
/******/
|
||||||
|
/******/ while(resolves.length) {
|
||||||
|
/******/ resolves.shift()();
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // add entry modules from loaded chunk to deferred list
|
||||||
|
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
|
||||||
|
/******/
|
||||||
|
/******/ // run deferred modules when all chunks ready
|
||||||
|
/******/ return checkDeferredModules();
|
||||||
|
/******/ };
|
||||||
|
/******/ function checkDeferredModules() {
|
||||||
|
/******/ var result;
|
||||||
|
/******/ for(var i = 0; i < deferredModules.length; i++) {
|
||||||
|
/******/ var deferredModule = deferredModules[i];
|
||||||
|
/******/ var fulfilled = true;
|
||||||
|
/******/ for(var j = 1; j < deferredModule.length; j++) {
|
||||||
|
/******/ var depId = deferredModule[j];
|
||||||
|
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
|
||||||
|
/******/ }
|
||||||
|
/******/ if(fulfilled) {
|
||||||
|
/******/ deferredModules.splice(i--, 1);
|
||||||
|
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ return result;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // The module cache
|
||||||
|
/******/ var installedModules = {};
|
||||||
|
/******/
|
||||||
|
/******/ // object to store loaded and loading chunks
|
||||||
|
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
||||||
|
/******/ // Promise = chunk loading, 0 = chunk loaded
|
||||||
|
/******/ var installedChunks = {
|
||||||
|
/******/ "app-config": 0
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ var deferredModules = [];
|
||||||
|
/******/
|
||||||
|
/******/ // The require function
|
||||||
|
/******/ function __webpack_require__(moduleId) {
|
||||||
|
/******/
|
||||||
|
/******/ // Check if module is in cache
|
||||||
|
/******/ if(installedModules[moduleId]) {
|
||||||
|
/******/ return installedModules[moduleId].exports;
|
||||||
|
/******/ }
|
||||||
|
/******/ // Create a new module (and put it into the cache)
|
||||||
|
/******/ var module = installedModules[moduleId] = {
|
||||||
|
/******/ i: moduleId,
|
||||||
|
/******/ l: false,
|
||||||
|
/******/ exports: {}
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Execute the module function
|
||||||
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||||
|
/******/
|
||||||
|
/******/ // Flag the module as loaded
|
||||||
|
/******/ module.l = true;
|
||||||
|
/******/
|
||||||
|
/******/ // Return the exports of the module
|
||||||
|
/******/ return module.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ // expose the modules object (__webpack_modules__)
|
||||||
|
/******/ __webpack_require__.m = modules;
|
||||||
|
/******/
|
||||||
|
/******/ // expose the module cache
|
||||||
|
/******/ __webpack_require__.c = installedModules;
|
||||||
|
/******/
|
||||||
|
/******/ // define getter function for harmony exports
|
||||||
|
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||||
|
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||||
|
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // define __esModule on exports
|
||||||
|
/******/ __webpack_require__.r = function(exports) {
|
||||||
|
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||||
|
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||||
|
/******/ }
|
||||||
|
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // create a fake namespace object
|
||||||
|
/******/ // mode & 1: value is a module id, require it
|
||||||
|
/******/ // mode & 2: merge all properties of value into the ns
|
||||||
|
/******/ // mode & 4: return value when already ns object
|
||||||
|
/******/ // mode & 8|1: behave like require
|
||||||
|
/******/ __webpack_require__.t = function(value, mode) {
|
||||||
|
/******/ if(mode & 1) value = __webpack_require__(value);
|
||||||
|
/******/ if(mode & 8) return value;
|
||||||
|
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||||||
|
/******/ var ns = Object.create(null);
|
||||||
|
/******/ __webpack_require__.r(ns);
|
||||||
|
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||||||
|
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||||||
|
/******/ return ns;
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||||
|
/******/ __webpack_require__.n = function(module) {
|
||||||
|
/******/ var getter = module && module.__esModule ?
|
||||||
|
/******/ function getDefault() { return module['default']; } :
|
||||||
|
/******/ function getModuleExports() { return module; };
|
||||||
|
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||||
|
/******/ return getter;
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Object.prototype.hasOwnProperty.call
|
||||||
|
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||||
|
/******/
|
||||||
|
/******/ // __webpack_public_path__
|
||||||
|
/******/ __webpack_require__.p = "/";
|
||||||
|
/******/
|
||||||
|
/******/ var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || [];
|
||||||
|
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
|
||||||
|
/******/ jsonpArray.push = webpackJsonpCallback;
|
||||||
|
/******/ jsonpArray = jsonpArray.slice();
|
||||||
|
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
|
||||||
|
/******/ var parentJsonpFunction = oldJsonpFunction;
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ // run deferred modules from other chunks
|
||||||
|
/******/ checkDeferredModules();
|
||||||
|
/******/ })
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ ([]);
|
|
@ -0,0 +1 @@
|
||||||
|
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__BAAC5A9","name":"work_order","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Geolocation":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>"]},"apple":{"dSYMs":false},"plugins":{"geolocation":{"system":{"__platform__":["ios","android"]},"amap":{"name":"amaptOT5SLwK","__platform__":["android"],"appkey_ios":"","appkey_android":"2ad33d95be57c3169cb881a7d2b1712f"}},"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"nativePlugins":{"SLY-AMapHelper":{"__plugin_info__":{"name":"后台持续定位、轨迹追踪、可锁屏 - [试用版,仅用于自定义调试基座]","description":"基于高德地图的后台持续定位、轨迹追踪、后台保活、锁屏定位。已处理主流系统权限申请流程,省心快速接入,提供演示程序下载[问题反馈:404342398@qq.com]","platforms":"Android","url":"https://ext.dcloud.net.cn/plugin?id=6267","android_package_name":"","ios_bundle_id":"","isCloud":true,"bought":0,"pid":"6267","parameters":{}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#eee","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"3.99","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#333","selectedColor":"#0074e8","borderStyle":"rgba(255,255,255,0.4)","backgroundColor":"#eee","list":[{"pagePath":"pages/index/index","text":"高德"},{"pagePath":"pages/test/test","text":"本机"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}
|
After Width: | Height: | Size: 3.9 KiB |