uni-app 集成 TUICallKit 如何做离线唤醒?
应用在后台时,不能自动将通话界面拉取到前台?
将应用从后台自动拉取到前台,需要检查 App 是否开启 “后台自动启动” 或 “悬浮窗” 权限。
值得注意的是,不同厂商、甚至同一厂商不同 Android 版本,其对于应用开放的权限以及权限名称也会存在不一致。例如,小米 6 只需开启后台弹出界面权限,而红米需要同时打开后台弹出界面和显示悬浮窗权限。
OPPO 手机的权限设置位置 | 小米手机的权限设置位置 |
| |
如何支持云端打包、本地打包,以及离线打包三种方式?
方式一:云端打包,(推荐采用该方式打包,方便后续升级)。
方式二:本地打包。下载插件到本地,在 HBuilderX 工程中创建 nativeplugins 目录,将下载的插件放到该目录下;单击 manifest.json 文件,单击 App 原生插件配置,选择本地插件。
方式三:离线打包。Android 离线打包 uniapp 官网文档较分散,可按照下述步骤进行:
按照官网文档 Android离线打包,集成 Android 工程,直接使用 uniapp 官网提供的方式二:导入工程,跑通官网 demo,减少踩坑。其中“配置工程”的第三步“资源配置”很重要,一定要仔细按照文档完成。
从官网下载 TUICallKit 插件,拷贝 TUICallKit-release.aar 放到 AndroidStudio工程的 libs 目录下。
在 app/build.gradle 文件中增加依赖(下载的插件的 package.json 文件有依赖项)。
在 dcloud_uniplugins.json 文件中添加 module 的引入。
检查 js 上层引用了 TUICallKit 插件,并有相关的调用。完成以下步骤,引入插件,可以直接打包生成 apk。
步骤1:拷贝插件到 libs 目录下 | 步骤2:在 app/build.gradle 中增加依赖 | 步骤3:在 dcloud_uniplugins.json 文件中添加 module 的引入 | 步骤4:上层调用 |
| | | |
提示“[-100013]:TRTC service is suspended...”
[-100013]:TRTC service is suspended. Please check if the package balance is 0 or the Tencent Cloud accountis in arrears
因为新的 IM 音视频通话能力是整合了腾讯云实时音视频 TRTC 和 即时通信 IM 两个基础的 PaaS 服务,所以当 实时音视频 TRTC 的免费额度(10000分钟)已经过期或者耗尽,就会导致开通此项服务失败,这里您可以单击 TRTC 控制台,找到对应 SDKAppID 的应用管理页,示例如图,开通付费功能后,再次启用应用即可正常体验音视频通话能力。
SDKAppID、sercretKey 参数说明
SDKAppID:在 步骤一:开通 TRTC 服务 中的最后一步中您已经获取到,这里不再赘述。
userID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
userSig:使用 步骤一:开通 TRTC 服务 中获取的 SecretKey 对 SDKAppID、userID 等信息进行加密,就可以得到 userSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台中的 辅助工具 生成一个临时可用的 userSig。
更多信息请参见 如何计算及使用 userSig。
注意:
这个步骤也是目前我们收到的开发者反馈最多的步骤,常见问题如下:
SDKAppID 设置错误,国内站的 SDKAppID 一般是以140开头的10位整数。
userSig 被错配成了加密密钥(Secretkey),userSig 是用 SecretKey 把 SDKAppID、userID 以及过期时间等信息加密得来的,而不是直接把 Secretkey 配置成 userSig。
userID 被设置成“1”、“123”、“111”等简单字符串,由于 TRTC 不支持同一个 UserID 多端登录,所以在多人协作开发时,形如 “1”、“123”、“111” 这样的 userID 很容易被您的同事占用,导致登录失败,因此我们建议您在调试的时候设置一些辨识度高的 userID。
Github 中的示例代码使用了 genTestUserSig 函数在本地计算 userSig 是为了更快地让您跑通当前的接入流程,但该方案会将您的 SecretKey 暴露在 App 的代码当中,这并不利于您后续升级和保护您的 SecretKey,所以我们强烈建议您将 userSig 的计算逻辑放在服务端进行,并由 App 在每次使用 TUICallKit 组件时向您的服务器请求实时计算出的 userSig。
自定义调试基座需要注意什么?
什么是自定义基座:参见 uni-app 官网自定义基座说明。
自定义基座不是正式版,真正发布时,需要再打正式包。使用自定义基座是无法正常升级替换 APK 的。
请尽量不要使用本地插件,插件包超过自定义基座的限制,可能导致调试收费。
使用自定义基座打包 uni 原生插件 (请使用真机运行自定义基座)
使用 uni 原生插件必须先提交云端打包才能生效,购买插件后在应用的
manifest.json
页面的 App原生插件配置 项下单击选择云端插件,选择腾讯云原生音视频插件。直接云端打包后无法打 log,无法排查问题,需要自定义基座调试原生插件。
如何创建群组通话的 groupID?
虚拟背景设置失效怎么办?
请升级HbuilderX 版本 ≥ 3.94。
和 livepusher 推流模块同时使用,打包冲突了怎么办?
结论:
目前两者无法同时使用。
原因:
uni-app 官网文档介绍 第三方 SDK 使用 LiteAVSDK(weex_livepusher-release.aar)做直播推流,和 uniapp TUICallKit 使用的 LiteAVSDK_TRTC 类冲突。和 uni-app 技术沟通后,对方反馈不清楚 SDK 属于哪个版本类型,因此 uni-app 他们无法对 livepusher 进行升级。
解决方案: