wepy接入sdk文档

## 目录结构 ``` src ├─app.wpy ├─trtc // VR带看页面和组件 | ├─videoDaiKan.wpy // 视频带看页面 | ├─vrRoom.wpy // 语音带看页面 | ├─components // 带看组件 ├─pages | └index.wpy // 首页示例页面 ``` ## 使用 ```bash $ cd vr-demo # 进入到项目目录 $ npm install # 安装项目依赖包 $ npm run dev # 监听并且编译项目 ``` ## wepy2项目接入思为VR带看步骤 #### 1. 将demo中的trtc文件夹拷贝到自己项目中的src下 #### 2. 添加页面配置——VR语音带看页面(必须)、视频带看页面(可选) #### 3. 可以根据自己需求选择将页面添加到主包或分包,此demo添加在分包中 ##### 配置示例: - 在app.wpy配置带看页面 ``` <config> { pages: [ 'pages/index', ], "subpackages": [ { "root": "trtc", "pages": [ "vrRoom", "videoDaiKan" ] }, ], } </config> ``` #### 4. SDK需要传入以下参数,可通过在跳转至VR带看页面url上拼接相关参数,带看页面处理后传入 ##### 调试参数: ###### 1. 顾问发起 - 顾问: **第一套环境** ``` roomID=64&rid=languangweilaicheng_12479&userUuid=1146397101027405826&openId=1146397101027405826&role=1&projectCode=1100574722257833985&trtcScene=sale&nodeEnv=development&tenant=languang ``` **新增测试环境** ``` roomID=2&rid=languangweilaicheng_12479&userUuid=1354627535114870785&openId=1354627535114870785&role=1&projectCode=1100574722257833985&trtcScene=sale&nodeEnv=development&tenant=languang ``` - 访客: **第一套环境** ``` roomID=64&rid=languangweilaicheng_12479&userUuid=1146397101027405826&openId=1310839780887326722&role=2&projectCode=1100574722257833985&trtcScene=sale&nodeEnv=development&tenant=languang ``` **新增测试环境** ``` roomID=2&rid=languangweilaicheng_12479&userUuid=1354627535114870785&openId=1354714800965091329&role=2&projectCode=1100574722257833985&trtcScene=sale&nodeEnv=development&tenant=languang ``` ###### 2. 访客发起 -访客呼叫 ``` nodeEnv=development&tenant=languang&openId=1310839780887326722&role=2&rid=languangweilaicheng_12479&projectCode=1100574722257833985&trtcScene=customer ``` -顾问收到小程序推送 ``` 推送链接在demo里有打印 搜索'小程序推送url'可获取 再添加两个参数访客创建的房间Id和选择的顾问,可从访客端的v-console(点击⚙️icon打开)里的network获取 ``` ##### 参数说明 | 名称 | 类型 | 是否必须 | 描述 | 默认值 | | ----------- | ------ | -------- | ------------------------------------- | ---------- | | openId | string | 必须 | 当前用户id | | | userUuid | string | 非必须 | 顾问id(顾问发起必传) | | | roomID | string | 非必须 | 房间名称(顾问发起必传) | | | role | string | 必须 |sale 顾问 customer 访客 | | | trtcScene | string | 必须 | 带看场景 1 访客发起 2 顾问发起 | | | projectCode | string | 必须 | 项目名称 | | | rid | string | 必须 | 微沙盘资源id | | | nodeEnv | string | 必须 | 环境变量 'development' / 'production' | production | | tenant | string | 必须 | 租户名 | default | #### 5. 需提供如下页面地址和对应跳转方式(redirectTo、navigateTo、reLaunch、reLaunch) ``` vrRoomPath: '/trtc/vrRoom', // vr带看页面地址 saleHangUpPath: '/pages/pageA/myCustomers/index', // 顾问挂断返回地址 visitorHangUpPath1: '/pages/tab/mine', // 访客挂断返回地址(未接通) visitorHangUpPath2: '/pages/tab/properties', // 访客挂断返回地址(已接通) videoCallPage: '/trtc/videoDaiKan' // 视频带看页面地址 ``` **ps:挂断跳转链接支持携带参数(传入SDK的参数都能获取到),格式如下:** ``` /pages/pageA/myCustomers/index?project=${projectCode} ``` #### 6. 带看生命周期 带看组件在各生命周期,暴露了不同的事件参数,可通过监听带看组件(vr带看、视频带看)的vrEvent的获取。 ##### 示例demo ``` <template> <div> <vr-many :options="options" @vrEvent="handleVrEvent"></vr-many> </div> </template> <script> import wepy from '@wepy/core' wepy.page({ name: 'vrRoom', data: { options: {} }, methods: { handleVrEvent(e) { console.log('handleVrEvent', e.$wx.detail) // 参数可从e.$wx.detail获取 } }, onLoad (options) { this.options = options }, }) </script> ``` ##### 回调参数说明 | 参数名 | 参数说明 | 是否必传 | | :--------- | :----------------------------- | :----------- | | eventType | 事件名称,具体事件见下表 | 必须 | | nickname | 昵称 | 非必须 | | targetUser | 事件触发者的id | 非必须 | | role | 角色:1顾问 2 访客 | 非必须 | | micStatus | 麦克风状态:false关麦 true开麦 | 开关麦时必传 | |roomInfo | 房间信息对象:id(房间id)、userUuid(房间绑定顾问)、resourceId(绑定沙盘)、title(沙盘标题-分享小程序卡片可用)、cover(沙盘封面图-分享小程序卡片可用)) | 必传 | | materialInfo | 顾问发送的营销物料的信息(名称、跳转信息等) | 顾问发送营销物料eventType为sendMaterial事件必传 | | marketMsgInfo | 访客点击顾问发送的营销物料 | 访客点击营销消息清单eventType为clickMarketMsg事件必须传 | ##### eventType事件类型 | 事件名称 | 触发时机 | | :-------------- | :------------------------- | | sendLiveMsg | 点击呼叫顾问 | | acceptInvite | 倒计时结束即将跳转视频带看 | | videoWatch | 进入视频带看 | | backToVR | 返回VR带看 | | saleHangUp | 销售挂断视频带看 | | toggleDrawBoard | 打开画板 | | exitDrawBoard | 退出画板 | | toggleAudio | 切换麦克风状态 | | joinRoom | 加入房间 | | sendMaterial | 顾问发送营销物料 | | clickMarketMsg | 访客点击营销消息清单 | ## 其他注意事项 1. 需要在小程序后台添加**类目**「视频客服」 2. 需要在小程序后**开发** => **接口设置** 打开实时视频开关 3. 需要在小程序配置**websocket接口**「wss://imapi.ideamake.cn」 4. 需要将H5项目上传到和微沙盘同域的目录下 5. 需要确保是否通过思为云创制作了微沙盘 6. trtc兼容性情况: > 微信 App iOS 最低版本要求:7.0.9 微信 App Android 最低版本要求:7.0.8 小程序基础库最低版本要求:2.10.0 > ### FAQ 1. 微沙盘无法同屏操作 先检查H5的房间号是否在同一个房间,`role`是否有传 检查微沙盘的`bundle`版本,目前版本`v0.3.8.2020-10-27.0001` 2. 访客端无法操作(已解决) 目前访客端暂时不支持同屏操作,下个版本会支持到。 3. 听不到声音 a. 检查手机兼容性 ` 微信 App iOS 最低版本要求:7.0.9 微信 App Android 最低版本要求:7.0.8 小程序基础库最低版本要求:2.10.0` b. 检查小程序后台是否打开实时音视屏开关 c. trtc基于UDP协议传输,请保证当前网络环境没有禁用UDP协议 4. 出现间隔性「socket重连」 同一个用户只能登陆一台终端,确定是否登陆多个终端(开发工具和真机) 5. 收不到订阅消息 确保是否有触发消息订阅,确保当前小程序是否添加了订阅消息模板 6. trtc socket连接发送消息到别的socket(影响到之前旧的socket) 确保旧的socket是否做了命名空间 [1]: https://cdn.ideamake.cn/wxa-applet/marketcloud/docs/bgy_trtc_mind.png [2]: https://cdn.ideamake.cn/wxa-applet/marketcloud/docs/bgy_trtc_access.jpg [3]: https://cdn.ideamake.cn/wxa-applet/marketcloud/docs/bgy_trtc_front.jpg [4]: https://cdn.ideamake.cn/wxa-applet/marketcloud/docs/trtc_version.png [5]: https://cdn.ideamake.cn/wxa-applet/marketcloud/docs/trtc_ring.jpg