此 SDK 基于 uni-app 以及 Agora Android 和 iOS 的视频 SDK 实现。
需要同时引用以下两个插件,JS 插件主要是为了做代码提示,且包含一些JS的逻辑,便于开发者使用 Native 插件
git clone https://github.com/AgoraIO-Community/Agora-Uniapp-SDK.git
cd Agora-Uniapp-SDK
yarn
随后拷贝 lib/commonjs 中生成的源代码到你的工程
如果你的 uni-app 项目支持 TypeScript, 则直接拷贝 src 内的源代码到你的工程即可
sh ./install.sh
并确认 ios/libs 目录中包含 .framework 文件
- Android:UniPlugin-Hello-AS
- iOS:HBuilder-uniPluginDemo
- 在 settings.gradle 中添加
include ':uniplugin_agora_rtc'
project(':uniplugin_agora_rtc').projectDir = new File(rootProject.projectDir, 'android')
- 在 app/build.gradle 中添加
implementation project(':uniplugin_agora_rtc')
在 Xcode 中右键 HBuilder-uniPlugin 工程,并点击 Add Files to "HBuilder-uniPlugin", 选中 AgoraRtcUniPlugin.xcodeproj 并添加
在 Xcode 中点击 HBuilder-uniPlugin 工程,并点击 HBuilder Target,选中 Build Phases
- 在 Dependencies 中添加 AgoraRtcUniPlugin
- 在 Link Binary With Libraries 中添加 AgoraRtcUniPlugin.framework
- 在 Embed Frameworks 中添加 AgoraCore.framework AgoraRtcKit.framework Agorafdkaac.framework Agoraffmpeg.framework AgoraSoundTouch.framework (需要通过 Add Other... 选择 ios/libs 目录中的 .framework 文件添加)
- 在 app/src/main/assets/dcloud_uniplugins.json 中添加
{
"nativePlugins": [
...
{
"plugins": [
{
"type": "module",
"name": "Agora-RTC-EngineModule",
"class": "io.agora.rtc.uni.AgoraRtcEngineModule"
},
{
"type": "module",
"name": "Agora-RTC-ChannelModule",
"class": "io.agora.rtc.uni.AgoraRtcChannelModule"
},
{
"type": "component",
"name": "Agora-RTC-SurfaceView",
"class": "io.agora.rtc.uni.AgoraRtcSurfaceView"
},
{
"type": "component",
"name": "Agora-RTC-TextureView",
"class": "io.agora.rtc.uni.AgoraRtcTextureView"
}
]
},
...
]
}
- 在 HBuilder-Hello/HBuilder-uniPlugin-Info.plist 中添加
...
<key>dcloud_uniplugins</key>
<array>
<dict>
<key>plugins</key>
<array>
<dict>
<key>class</key>
<string>AgoraRtcEngineModule</string>
<key>name</key>
<string>Agora-RTC-EngineModule</string>
<key>type</key>
<string>module</string>
</dict>
<dict>
<key>class</key>
<string>AgoraRtcChannelModule</string>
<key>name</key>
<string>Agora-RTC-ChannelModule</string>
<key>type</key>
<string>module</string>
</dict>
<dict>
<key>class</key>
<string>AgoraRtcSurfaceView</string>
<key>name</key>
<string>Agora-RTC-SurfaceView</string>
<key>type</key>
<string>component</string>
</dict>
<dict>
<key>class</key>
<string>AgoraRtcTextureView</string>
<key>name</key>
<string>Agora-RTC-TextureView</string>
<key>type</key>
<string>component</string>
</dict>
</array>
</dict>
...
</array>
...
// 指向插件JS源码在你的工程中的相对路径,比如
import RtcEngine from '../../components/Agora-RTC-JS/index';
RtcEngine.create('你的AppID').then((engine) => {
console.log('init success');
});
插件绝大部分 API 都使用 Promise 包装,为保证调用时序,请使用 await 关键字
building for ios simulator, but the embedded framework 'xxx.framework' was built for ios + ios simulator.
在 Xcode 的 Build Settings 中搜索 Validate Workspace 并设置为 No
请参考 官网文档
- 完整的 API Doc 在开发者中心
- 反馈问题
- uni-app 原生插件
MIT