Uniapp
仅支持Android和iOS
仅支持Android和iOS
<https://ext.dcloud.net.cn/plugin?id=16592> 界面下载 TrustDeviceUniPlugin 插件TrustDecision-TrustDeviceUniPlugin 文件夹放入 your_project/nativeplugins 目录manifest.json,选择 App原生插件配置[选择本地插件],勾选 TrustDeviceUniPlugin在工程目录下的 manifest.json ⽂件中声明以下权限
"android" : {
"permissions" : [
<!--必选权限-->
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
<!--如果您的应用是面向海外市场,在google play 上发布,请添加此项-->
"<uses-permission android:name=\"com.google.android.gms.permission.AD_ID\",
<!--以下权限是可选权限,不声明此部分权限将放弃部分设备信息的采集,对风险识别有一定影响-->
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
<!-- Android11及以上获取安装包列表需要该权限,采集安装包列表涉及到⻛险合规,是否需要该权限业务⽅⾃⾏选
择 -->
"<uses-permission android:name=\"android.permission.QUERY_ALL_PACKAGES\"/>"
/>"
],
...
},1.获取 TrustDevice 插件
const TrustDevice = uni.requireNativePlugin("TrustDecision-TrustDeviceUniPlugin");2.在实际业务节点调用插件 sign 方法对需要加签的 url 进行签名
// 需要加密的url
const path = "dev/v2";
TrustDevice.sign(path, (signResult) => {
if (signResult.code == 0) {
// 加签成功,可使用签名结果sign继续业务逻辑
const sign = signResult.sign;
// todo
} else {
// 加签失败
console.log('sign fail:', signResult.msg)
}
});如果 Android 需要使用 proguard 进行混淆打包,请在 proguard 配置文件添加如下代码:
-keep class com.trustdecision.**{*;}