大唐会议项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
2.8 KiB

<template>
<view class="container">
<web-view :src="src" @message="handlePostMessage"></web-view>
</view>
</template>
<script>
var wv;
// #ifdef APP-PLUS
import permision from '@/utils/wa-permission/permission.js'
// #endif
export default {
data() {
return {
src: '',
}
},
onLoad() {
this.onReloadWebview()
},
onReady() {
// #ifdef APP-PLUS
var currentWebview = this.$scope.$getAppWebview()
//此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效
//如果是页面初始化调用时,需要延时一下
setTimeout(function() {
wv = currentWebview.children()[0]
}, 1000);
// #endif
},
methods: {
onReloadWebview() {
this.src = 'http://10.89.114.11:9001/datang/meeting/client/'
},
// webview向外部发送消息
handlePostMessage(e) {
var data = e.detail.data || []
if (data.length) {
var bridgeParam = data[0]
// 集中控制bridge
this.onBridgeHandler(bridgeParam)
}
},
onBridgeHandler({
method,
param,
callback
}) {
var currentWebview = this.$scope.$getAppWebview()
wv = currentWebview.children()[0]
var onAuthHandlerFinished = (result) => {
wv.evalJS(`${callback}(${result})`);
}
if (method === 'camera') {
this.getCameraAuth(param, onAuthHandlerFinished)
}
if (method === 'record') {
this.getAudioAuth(param, onAuthHandlerFinished)
}
},
getCameraAuth(param, callback) {
var result = uni.getAppAuthorizeSetting()
if (result.cameraAuthorized === 'authorized') {
// 已获取到权限了
callback && callback(1)
} else {
permision.requestAndroidPermission('android.permission.CAMERA').then((e) => {
// 已获取到权限了
callback && callback(e)
}).catch((err) => {
// 没有获取到权限
callback && callback(false)
// 打开系统设置界面
uni.openAppAuthorizeSetting({
success(res) {
console.log('openAppAuthorizeSetting::', res)
}
})
})
}
},
getAudioAuth(param, callback) {
var result = uni.getAppAuthorizeSetting()
if (result.microphoneAuthorized === 'authorized') {
// 已获取到权限了
callback && callback(1)
} else {
permision.requestAndroidPermission('android.permission.RECORD_AUDIO').then((e) => {
// 已获取到权限了
callback && callback(e)
}).catch((err) => {
// 没有获取到权限
callback && callback(false)
// 打开系统设置界面
uni.openAppAuthorizeSetting({
success(res) {
console.log('openAppAuthorizeSetting::', res)
}
})
})
}
}
}
}
</script>
<style lang="scss">
.container {
height: 100vh;
}
</style>