123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <template>
- <view class="call-view">
- <cover-view class="profile">
- <image class="caller-avatar" mode="widthFix" :src="currentCall.caller.data.avatar"></image>
- <text class="caller-name">{{currentCall.caller.data.name}}</text>
- </cover-view>
- <view class="status-box">
- <text class="status-notice">邀请你加入多人通话</text>
- <image src="/static/images/load.gif" class="loading"></image>
- </view>
- <view class="callee-info">
- <text class="callee-text">参与通话的还有:</text>
- <view class="callee-list">
- <view v-for="(callee, index) in currentCall.callees" :key="index" >
- <image class="callee-avatar" :src="callee.data.avatar" mode="widthFix"></image>
- </view>
- </view>
- </view>
- <view class="action-box">
- <view class="action-item" @click="end()">
- <view class="end-background">
- <image class="action-icon" src="/static/images/phoneEnd.png"></image>
- </view>
- <text class="action-text">拒绝</text>
- </view>
- <view class="action-item" @click="accept()">
- <view class="accept-background">
- <image class="action-icon rotate" src="/static/images/phoneEnd.png"></image>
- </view>
- <text class="action-text">接听</text>
- </view>
- </view>
- </view>
- </template>
- <script>
- const GRTC = uni.$GRTC;
- export default {
- data() {
- return {
- currentCall: GRTC.currentCall(),
- }
- },
- onLoad() {
- this.initListener();
- },
- onUnload() {
- GRTC.off(GRTC.EVENT.USER_QUIT, this.onUserQuit);
- GRTC.off(GRTC.EVENT.CALL_ENDED, this.onCallEnded);
- },
- onBackPress(event) {
- return event.from === 'backbutton'; // 禁止安卓侧滑返回
- },
- methods: {
- initListener() {
- GRTC.on(GRTC.EVENT.USER_QUIT, this.onUserQuit);
- GRTC.on(GRTC.EVENT.CALL_ENDED, this.onCallEnded);
- },
- onUserQuit(event) {
- const username = event.user.id === uni.$currentUser.id ? '' : event.user.data.name;
- let message = '';
- switch (event.reason) {
- case 'RING_TIMEOUT':
- message = `超时未接听`;
- break;
- case 'GOEASY_DISCONNECTED':
- message = `${username}网络异常`;
- break;
- case 'HANDLED_ON_ANOTHER_DEVICE':
- message = `其他设备已处理`;
- break;
- case 'CANCELLED':
- message = `${username}已取消`;
- break;
- case 'REJECTED':
- message = `${username}已拒绝`;
- break;
- }
- uni.showToast({
- title: message,
- icon: "none"
- });
- },
- onCallEnded() {
- uni.navigateBack();
- },
- accept() {
- GRTC.accept().then(() => {
- uni.redirectTo({
- url: './call'
- });
- }).catch((e) => {
- console.log('e', e);
- })
- },
- end() {
- GRTC.end();
- },
- }
- }
- </script>
- <style scoped>
- @import url('/static/style/rtcCallStyle.css');
- </style>
|