xinelu-applet-ui/pagesB/solution/solution.vue
2023-11-08 15:33:37 +08:00

131 lines
3.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view>
<view class="" @tap='goroom'>
跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转跳转
</view>
</view>
</template>
<script>
import {
getUserSig
} from '@/api/pagesB/solution/solution.js'
export default {
data() {
return {
src: '',
userSig: '',
item: {},
roomId: '',
authorizeMic: '',
authorizeCamera: '',
hasOpenDeviceAuthorizeModal: '',
};
},
methods: {
goroom() {
this.checkDeviceAuthorize().then((result) => {
console.log('授权成功', result)
uni.navigateTo({
url: `/pagesmeeting/room/room?sdkAppID=1600006944&localVideo=true&localAudio=true&userID=${this.item.patientId}&userName=${this.item.receiver}&userSig=${this.userSig}&roomID=${this.roomId}`
})
})
.catch((error) => {
console.log('没有授权', error)
})
},
checkDeviceAuthorize() {
this.hasOpenDeviceAuthorizeModal = false
return new Promise((resolve, reject) => {
if (!wx.getSetting || !wx.getSetting()) {
// 微信测试版 获取授权API异常目前只能即使没授权也可以通过
resolve()
}
wx.getSetting().then((result) => {
console.log('getSetting', result)
this.authorizeMic = result.authSetting['scope.record']
this.authorizeCamera = result.authSetting['scope.camera']
if (result.authSetting['scope.camera'] && result.authSetting['scope.record']) {
// 授权成功
resolve()
} else {
// 没有授权,弹出授权窗口
// 注意: wx.authorize 只有首次调用会弹框,之后调用只返回结果,如果没有授权需要自行弹框提示处理
console.log('getSetting 没有授权,弹出授权窗口', result)
wx.authorize({
scope: 'scope.record',
}).then((res) => {
console.log('authorize mic', res)
this.authorizeMic = true
if (this.authorizeCamera) {
resolve()
}
})
.catch((error) => {
console.log('authorize mic error', error)
this.authorizeMic = false
})
wx.authorize({
scope: 'scope.camera',
}).then((res) => {
console.log('authorize camera', res)
this.authorizeCamera = true
if (this.authorizeMic) {
resolve()
} else {
this.openConfirm()
reject(new Error('authorize fail'))
}
})
.catch((error) => {
console.log('authorize camera error', error)
this.authorizeCamera = false
this.openConfirm()
reject(new Error('authorize fail'))
})
}
})
})
},
openConfirm() {
if (this.hasOpenDeviceAuthorizeModal) {
return
}
this.hasOpenDeviceAuthorizeModal = true
return uni.showModal({
content: '您没有打开麦克风和摄像头的权限,是否去设置打开?',
confirmText: '确认',
cancelText: '取消',
success: (res) => {
this.hasOpenDeviceAuthorizeModal = false
console.log(res)
// 点击“确认”时打开设置页面
if (res.confirm) {
console.log('用户点击确认')
wx.openSetting({
success: (res) => {},
})
} else {
console.log('用户点击取消')
}
},
})
},
info() {
getUserSig(this.item.patientId).then(res => {
this.userSig = res.data
})
},
},
onLoad(options) {
this.item = JSON.parse(options.item)
this.roomId = options.roomId
this.info()
}
}
</script>
<style lang="scss">
</style>