88 lines
2.8 KiB
Vue
88 lines
2.8 KiB
Vue
|
<template>
|
|||
|
<web-view class="webview" @message="webLoad" style="flex: 1;" ref="webViewRef" :src="config.h5Url"></web-view>
|
|||
|
</template>
|
|||
|
<script setup>
|
|||
|
import { ref } from 'vue'
|
|||
|
import config from "../../config";
|
|||
|
import { onShow, onHide } from "@dcloudio/uni-app";
|
|||
|
/* import {sendWebWiew,receiveWebView} from "@/utils/communicate"; */
|
|||
|
/* import location from "../../utils/location"; */
|
|||
|
/* import {
|
|||
|
registerRequestPermissionTipsListener,
|
|||
|
unregisterRequestPermissionTipsListener,
|
|||
|
setRequestPermissionTips
|
|||
|
} from "@/uni_modules/uni-registerRequestPermissionTips" */
|
|||
|
/* plus.runtime.setBadgeNumber(999); */
|
|||
|
|
|||
|
/* const permissionListener = uni.createRequestPermissionListener();
|
|||
|
permissionListener.onRequest((e)=>{
|
|||
|
})
|
|||
|
permissionListener.onConfirm((e) => {
|
|||
|
sendWebWiew(webViewRef.value,{auth:e,open:true})
|
|||
|
});
|
|||
|
permissionListener.onComplete((e) => {
|
|||
|
/* uni.showToast({
|
|||
|
duration:1000000,
|
|||
|
title:`${JSON.stringify(e)}1111${JSON.stringify(f)}`,
|
|||
|
icon:'none'
|
|||
|
}) */
|
|||
|
/* sendWebWiew(webViewRef.value,{auth:e,open:false})
|
|||
|
}); *!/*/
|
|||
|
/* registerRequestPermissionTipsListener({
|
|||
|
onRequest: (e) => {
|
|||
|
console.log(e)
|
|||
|
},
|
|||
|
onConfirm: (e) => {
|
|||
|
sendWebWiew(webViewRef.value,{auth:e,open:true})
|
|||
|
},
|
|||
|
onComplete: (e) => {
|
|||
|
|
|||
|
const arr=['android.permission.ACCESS_COARSE_LOCATION','android.permission.ACCESS_FINE_LOCATION','android.permission.ACCESS_LOCATION_EXTRA_COMMANDS','android.permission.ACCESS_MOCK_LOCATION']
|
|||
|
const hasIntersection = Object.keys(e).some(item => new Set(arr).has(item));
|
|||
|
uni.setSt
|
|||
|
sendWebWiew(webViewRef.value,{auth:Object.keys(e),open:false})
|
|||
|
}
|
|||
|
})*/
|
|||
|
//解决ios的h5问题,获取网络权限之后,重新加载
|
|||
|
const networkStatusChange=(res)=>{
|
|||
|
if(res.isConnected) {
|
|||
|
uni.redirectTo({
|
|||
|
url: '/pages/index/index'
|
|||
|
})
|
|||
|
} else {
|
|||
|
uni.showToast({
|
|||
|
title: '网络无连接',
|
|||
|
icon: 'none'
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
const webViewObj=ref(null)
|
|||
|
onShow(()=>{
|
|||
|
uni.onNetworkStatusChange(networkStatusChange);
|
|||
|
})
|
|||
|
|
|||
|
onHide(()=>{
|
|||
|
uni.offNetworkStatusChange(networkStatusChange)
|
|||
|
})
|
|||
|
const webLoad=(e)=>{
|
|||
|
const h5SendString=e.detail.data?.[0]?.action
|
|||
|
switch (h5SendString) {
|
|||
|
//webview初始化加载完成
|
|||
|
case 'load-complete':{
|
|||
|
const {statusBarHeight} = uni.getSystemInfoSync()
|
|||
|
const currentWebview = getCurrentPages().pop().$getAppWebview()
|
|||
|
webViewObj.value=currentWebview.children()[0]
|
|||
|
/* webViewObj.value.evalJS(`window.onReceive(${jsonString})`) */
|
|||
|
webViewObj.value.setStyle({
|
|||
|
top: statusBarHeight,
|
|||
|
bottom: 0,
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style>
|
|||
|
|
|||
|
</style>
|