uniapp外包项目开发要求集成安卓原生SDK插件,对原生安卓一窍不通的自己,实在是学不动了,于是想着去某宝或者某鱼找个外援,但是对方的报价感人,让自己瞬间又有了学习的动力。
需求
集成快手sdk,用来监听在快手上推广app的效果。
开发文档
uniapp 官方关于安卓插件的开发文档说明,所需要的实例以及离线sdk都可以在这个文档里看到和下载。
开发文档
开发工具
Android Studio HBuilderX
Android Studio 下载地址
离线sdk
申请Appkey
本地调试需要申请appkey
申请地址
申请地址
进入到我的应用,找到我们要本地调试的app
进入到应用详情,找到离线打包key管理
输入包名Android 证书签名SHA1 和iOS BundleId
保存后就会生成我们需要的appkey
实例文件修改
将下载的实例文件中的UniPlugin-Hello-AS中的旧appId替换成我们要调试的新appId,全局查找替换外加对应的目录名修改
找到AndroidManifest.xml,将里面的appkey改为我们上面申请新的appkey
学习视频
在对安卓不熟悉的情况下,先跟着b站教程走一遍流程大概熟悉一下文件的情况,更容易往下操作
学习视频
加入文件包
这里需要集成的sdk是monitorsdk-1.0.10.aar,将文件放到libs目录下
引入
as 切换到Android下,选择uniplugin_module,这里使用的是自带的演示目录文件下直接修改uniplugin_module 引入monitorsdk-1.0.10.aar
引入后,顶部会出现一个sync Now点一下
替换证书
将默认版本的证书替换成自己的app证书,以便于sdk调试
证书信息修改,修改为我们自己的证书信息
生成本地资源包
将资源包覆盖一下旧资源包,注意资源包名称要和自己的app名称一致
常见问题
项目配置都正确怎么还是提示"未配置AppKey或配置错误"?
常见问题
初始化我们的sdk
package io.dcloud.uniplugin;
import android.app.Activity;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.common.UniModule;
import com.kwai.monitor.log.TurboAgent;
import com.kwai.monitor.log.TurboConfig;
public class TestModule extends UniModule {
@UniJSMethod (uiThread = true)
public void init(String appId,String appName){
if(mUniSDKInstance != null && mUniSDKInstance.getContext() instanceof Activity) {
TurboAgent.init(TurboConfig.TurboConfigBuilder.create(mUniSDKInstance.getContext())
.setAppId(appId) //请填写平台申请的appId
.setAppName(appName) //请填写申请Appid时填写的appName
.setEnableDebug(true)
.build());
TurboAgent.onAppActive();
TurboAgent.onRegister();
}
}
}
在uniapp引用并初始化
var testModule = uni.requireNativePlugin("TestModule")
// 快手sdk初始化
kuaishouSdkInit() {
console.log('初始化')
testModule.init("****", "****")
},
编译sdk
编译我们写的代码
找到我们编译好的文件
uniapp文件中创建目录
将编译好的文件以及sdk文件按照下面的目录放好,细节再上面推荐的视频结尾有详细的操作流程
配置好插件参数
{
"name": "快手monitorsdk-1.0.10 sdk集成",
"id": "uniplugin_module",
"version": "1.0.0",
"description": "快手monitorsdk",
"_dp_type": "nativeplugin",
"_dp_nativeplugin": {
"android": {
"plugins": [{
"type": "module",
"name": "TestModule",
"class": "io.dcloud.uniplugin.TestModule"
}],
"integrateType": "aar",
"minSdkVersion": "21"
}
}
}
在插件原生插件配置中,选择本地插件,找到我们的插件,勾选。
打包基座调试
与后台进行联调测试。