更新记录
1.0.0(2023-07-19)
新版发布
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
插件介绍
1. 该插件封装了快手磁力智投追踪应用转化SDK
2. 实现了SDK中的初始化、激活设备、上报注册事件、上报支付事件等方法。
API列表
/**
* SDK初始化参数
* @param appId SDK后台申请到的appId,可参考后面SDK地址
* @param appName 申请的app名称
* @param appChannel 自定义渠道号
*/
void initParams(String appId, String appName, String appChannel)
/**
* 初始化磁力智投追踪应用转化SDK
*/
void initSdk()
/**
* 上报设备激活事件
*/
void onAppActive()
/**
* 上报注册事件
*/
void onRegister()
/**
* 上报购买支付事件
* @param amount 金额,单位为元
*/
void onPay(double amount)
/**
* 上报onPageResume事件
*/
void onPageResume()
/**
* 上报onPagePause事件
*/
void onPagePause()
/**
* 检查是否授权READ_PHONE_STATE,该权限用于SDK的初始化,获取设备信息
* @return {code: '1'} 返回值Json里面的code为'1'则为已授权
*/
JSONObject checkPermission()
/**
* 手动请求权限READ_PHONE_STATE,该权限用于SDK的初始化,获取设备信息
*/
void requestPermission()
SDK调用流程
1. 首先调用initParams(String appId, String appName, String appChannel)方法,将初始化参数传入SDK。
2. 调用checkPermission()方法检查用户是否已经授权READ_PHONE_STATE权限,如果已授权则直接调用initSdk()和onAppActive()方法初始化SDK和激活设备。
3. 如果第2部中检查未授权,则弹出框提示用户将要请求权限,用户点击确认按钮后调用方法requestPermission(),
注意,示例中只会弹出一次请求,如果用户拒绝后续将不会继续弹出请求窗口。
5. 用户在点击同意授权后,系统会自动调用initSdk()和onAppActive()方法初始化SDK和激活设备,开发人员无须另外处理。
7. 在用户注册成功回调里面调用SDK方法onRegister,在支付成功的回调里面调用SDK方法onPay。
SDK初始化与设备激活
<template>
...
</template>
<script>
const kssdk = uni.requireNativePlugin('lilu-kssdk');//获取sdk实例
export default {
data() {
return {
}
},
onLoad() {
this.initKsSdk();
},
methods: {
initKsSdk() {
kssdk.initParams("XXXXX", "xxxApp", "1");
let per = kssdk.checkPermission();
if (per.code === '1') {//已经授权
kssdk.initSdk();
kssdk.onAppActive();
}
else {//未授权
//是否已经弹出过权限申请窗口,如果已弹出则不弹
let showPermission = uni.getStorageSync('showPermission') || '0'
if (showPermission !== '1') {//第一次弹出授权请求窗口
let me = this;
uni.showModal({
title: '提示',
content: '为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。',
showCancel: false,
success: function(res) {
if (res.confirm) {
uni.setStorageSync('showPermission', '1');
kssdk.requestPermission();
}
}
})
}
}
},
}
}
</script>
上报注册事件示例
<template>
...
</template>
<script>
const kssdk = uni.requireNativePlugin('lilu-kssdk');
export default {
data() {
return {
}
},
methods: {
onRegister() {//这个方法可以在注册成功的回调里面调用
kssdk.onRegister();
}
}
}
</script>
上报消费支付示例
<template>
...
</template>
<script>
const kssdk = uni.requireNativePlugin('lilu-kssdk');
export default {
data() {
return {
}
},
methods: {
ksOnPay() {//这个方法可以在支付成功的回调里面调用
kssdk.onPay(18.00);
},
}
}
</script>