Uniapp

仅支持Android和iOS

集成要求

环境要求

AndroidiOS
兼容版本Android 5.0及以上系统iOS9.0及以上系统
支持架构armeabi-v7a, arm64-v8a, x86armv7,arm64,x86_64

集成步骤

安装配置

插件配置

  1. <https://ext.dcloud.net.cn/plugin?id=16592> 界面下载 TrustDeviceUniPlugin 插件
  2. TrustDecision-TrustDeviceUniPlugin 文件夹放入 your_project/nativeplugins 目录
  3. 在 HBuilderX 点击选中 manifest.json,选择 App原生插件配置
  4. 点击本地插件 [选择本地插件],勾选 TrustDeviceUniPlugin

Android权限申请

在工程目录下的 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\"/>"
                    />"
                ],
            ...
            },

权限说明

权限说明
INTERNET(必选)允许程序访问网络连接,发送请求与服务器进行通信
ACCESS_NETWORK_STATE(必选)获取网络连接状态信息
ACCESS_WIFI_STATE(必选)获取当前WiFi接入的状态以及WLAN热点的信息
AD_ID(海外必选)获取google 广告ID
ACCESS_COARSE_LOCATION获取粗略位置信息,精度大概误差在30~1500米
ACCESS_FINE_LOCATION获取精确位置信息,定位精度达10米以内
READ_PHONE_STATE读取SIM卡相关信息
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)
  }

}); 

状态码

状态码信息描述处理方式
0成功/
2000path为空请设置path参数
22xx内部错误请联系技术支持
30xx内部错误请联系技术支持
4001调用so文件失败,可能是SDK依赖的so文件已经缺失请检查当前设备所使用的架构是否有配置到项目中
4002调用SDK失败请检查apisign模块是否引入到项目中

其他说明

混淆打包

如果 Android 需要使用 proguard 进行混淆打包,请在 proguard 配置文件添加如下代码:

-keep class com.trustdecision.**{*;}