76 lines
1.9 KiB
Plaintext
76 lines
1.9 KiB
Plaintext
<template>
|
||
<div class="content">
|
||
<web-view class="webview" @onPostMessage="webLoad" :style="{height:`${systemInfo.windowHeight}px`,width:`${systemInfo.windowWidth}`}" ref="webViewRef" :src="config.h5Url"></web-view>
|
||
</div>
|
||
</template>
|
||
<script setup>
|
||
import { ref,onShow ,onHide} from 'vue'
|
||
import config from "../../config";
|
||
import {sendWebWiew,receiveWebView} from "@/utils/communicate";
|
||
const webViewRef=ref(null)
|
||
const systemInfo = uni.getSystemInfoSync();
|
||
// #ifdef APP-ANDROID
|
||
/* const permissionListener = uni.createRequestPermissionListener();
|
||
permissionListener.onRequest((e)=>{
|
||
})
|
||
permissionListener.onConfirm((e) => {
|
||
sendWebWiew(webViewRef.value,{auth:e,open:true})
|
||
});
|
||
permissionListener.onComplete((e) => {
|
||
sendWebWiew(webViewRef.value,{auth:e,open:false})
|
||
}); */
|
||
// #endif
|
||
//解决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 m=receiveWebView(e)
|
||
switch (m.action) {
|
||
//webview初始化加载完成
|
||
case 'load-complete':{
|
||
|
||
const systemInfo= uni.getSystemInfoSync()
|
||
uni.getLocation({
|
||
type: 'gcj02',
|
||
geocode: false,
|
||
isHighAccuracy: false,
|
||
success:async (res) => {
|
||
sendWebWiew(webViewRef.value,{...res,systemInfo})
|
||
},
|
||
fail: (e) => {
|
||
console.log(e);
|
||
}
|
||
})
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
</script>
|
||
|
||
<style>
|
||
|
||
.content {
|
||
display: flex;
|
||
flex: 1;
|
||
}
|
||
</style>
|