unknown
9 months ago
474 changed files with 13349 additions and 5098 deletions
-
139common/js/qqLatLng.js
-
741common/sdk/qqmap-wx-jssdk.js
-
3common/sdk/qqmap-wx-jssdk.min.js
-
17config/api.js
-
3config/site.config.js
-
1index.html
-
45manifest.json
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule.zip
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/.DS_Store
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/APSecuritySDK-DeepSec-7.0.1.20220813.jiagu.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/Android-AliyunFaceGuard-10038.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-base-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-facade-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-face-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-faceaudio-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-facelanguage-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-nfc-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-ocr-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-photinus-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/aliyun-wishverify-2.2.8.1-20230721163000.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/android/uniplugin_module-release.aar
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/.DS_Store
-
68nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.bundle/en.strings
-
59nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.bundle/id.strings
-
59nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.bundle/ja.strings
-
59nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.bundle/ko.strings
-
68nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.bundle/zh-HK.strings
-
68nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.bundle/zh-Hans.strings
-
68nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.bundle/zh-Hant.strings
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/.DS_Store
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/APBToygerFacade
-
76nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerBaseTask.h
-
19nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerCherryDetectTask.h
-
26nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerCherryUploadTask.h
-
36nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerFacade.h
-
130nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerFacadeDefine.h
-
25nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerPresentTask.h
-
27nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerUploadTask.h
-
61nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerUtils.h
-
34nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerViewController.h
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Info.plist
-
6nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacade.framework/Modules/module.modulemap
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_angle.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_away.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_blink.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_closer.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_integrity.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_left_yaw.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_light.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_right_yaw.mp3
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_stay.mp3
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/.DS_Store
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/APPSecuritySDK
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/APPSecuritySDKCore-Info.plist
-
122nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APDID.h
-
41nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APDeviceColor.h
-
32nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APDynamic.h
-
21nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskConfigReportRequest.h
-
19nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskConfigReportResponse.h
-
20nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskConfigServiceProtocol.h
-
14nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskFileUploadProtocol.h
-
21nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskLoggerProtocol.h
-
30nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskRPCProtocol.h
-
29nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskRemoteLoggerProtocol.h
-
68nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskReportRequest.h
-
65nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskReportResponse.h
-
20nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskRpcConfiguration.h
-
21nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskSyncHandlerProtocol.h
-
28nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskSyncServiceProtocol.h
-
41nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSecRDS.h
-
48nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSecStore.h
-
113nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSecureSdk.h
-
56nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSign.h
-
234nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSCommon.h
-
37nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSDynamicManager.h
-
39nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSLogger.h
-
28nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSSecureInfo.h
-
77nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSSecureOpenSdk.h
-
29nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSSgomInfoOpen.h
-
40nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSTokenResult.h
-
101nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/AntSecurityManager.h
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/Info.plist
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeDirectory
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeRequirements
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeRequirements-1
-
559nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeResources
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeSignature
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/en.lproj/InfoPlist.strings
-
9nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/APPSecuritySDK.framework/module.map
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunFaceAuthFacade.framework/.DS_Store
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade-Info.plist
-
44nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunFaceAuthFacade.framework/Headers/AliyunFaceAuthFacade.h
-
28nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunFaceAuthFacade.framework/Headers/PoPGatewayNetwork.h
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunFaceAuthFacade.framework/Info.plist
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunFaceAuthFacade.framework/en.lproj/InfoPlist.strings
-
BINnativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunOSSiOS.framework/.DS_Store
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunOSSiOS.framework/AliyunOSSiOS
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunOSSiOS.framework/Headers/AliyunOSSiOS.h
-
0nativePlugins/AP-FaceDetectModule-2.3.11-20240304151709/Ocr-FaceDetectModule/ios/AliyunOSSiOS.framework/Headers/NSDate+OSS.h
@ -1,53 +1,90 @@ |
|||
var KJTencentLocation = uni.requireNativePlugin("KJ-TencentLocation"); |
|||
|
|||
|
|||
var KJTencentLocation = uni.requireNativePlugin("KJ-TencentLocation"); |
|||
|
|||
var kic = { |
|||
"apiKey": "BPMBZ-VSKE3-MC23F-O3KZO-AZGI7-PXFJI", //ios才有效,andorid的在App原生插件配置里设置
|
|||
"deviceID": "oaid"//andorid必须设置,默认使用oaid,ios无需设置
|
|||
} |
|||
KJTencentLocation.init(kic); |
|||
|
|||
var dic = { |
|||
"coordinateType": "gcj02", //设置坐标系 GCJ02(火星坐标,即国测局坐标) WGS84(地球坐标,注:如果是海外,无论设置的是火星坐标还是地球坐标,返回的都是地球坐标)
|
|||
"requestLevel": 4, //请求等级 0(包含经纬度) 1(包含经纬度, 位置名称, 位置地址) 3(包含经纬度,位置所处的中国大陆行政区划) 4(包含经纬度,位置所处的中国大陆行政区划及周边POI列表)
|
|||
/**以下andorid有效**/ |
|||
"mockEnable": false, //是否允许mockGps数据 设置为true后将不对mockGps进行过滤,是否允许应用对GPS进行模拟
|
|||
"systemCacheEnable": false, //是否允许在定位失败情况下返回系统缓存位置
|
|||
//"deviceID":"xxx", //设备id
|
|||
"userAgreePrivacy": true, //设置用户是否同意隐私协议政策
|
|||
"allowCache": true, //是否允许使用缓存
|
|||
"allowDirection": true, //是否允许使用设备传感器获取方向
|
|||
"allowGPS": true, //是否允许使用GPS进行定位
|
|||
"gnssSource": 20, //设置优先卫星定位信号来源 改设置仅对连续定位生效,20(GPS) 21(北斗)
|
|||
"gpsFirst": false, //首次定位是否等待卫星定位结果,默认为false 当设置为true时,首次定位会等待卫星定位结果,默认等待时间为30s,超时将返回网络定位结果
|
|||
"gpsFirstTimeOut": 10000, //卫星定位优先时,等待卫星定位结果对的超时时间,单位: ms, 最多等待60s.
|
|||
"indoorLocationMode": true, //启动室内定位
|
|||
"interval": 5000, //定位周期(位置监听器回调周期), 单位为 ms (毫秒).
|
|||
"locMode": 10, //定位模式 10(高精度定位模式,将同时使用网络定位和卫星定位,优先返回精度高的定位) 11(仅网络定位模式,将不启动gps定位,只使用网络定位,可以减少耗电量,但定位精度有所降低) 12(仅GPS定位模式)
|
|||
// "phoneNumber": "111",
|
|||
// "qq": "xxx",
|
|||
// "smallAppKey": "xxx", //设置分渠道的key编码号,例如小程序里面区分业务.
|
|||
/**以下ios有效**/ |
|||
"distanceFilter": 0, //设置定位的最小更新距离
|
|||
"desiredAccuracy": "best", //设置定位精度 bestForNavigation best nearestTenMeters hundredMeters kilometer threeKilometers
|
|||
"pausesLocationUpdatesAutomatically": false, //定设置位是否会被系统自动暂停
|
|||
"allowsBackgroundLocationUpdates": true, //设置是否允许后台定位 为true 需要配置manifest.json->App常用其它设置->后台运行能力 location
|
|||
"activityType": 1, //设置用户的活动类型 1(未知的出行活动类型) 2(位置管理器专门为出行活动为汽车的时候导航) 3(位置管理器专门为步行、跑步、骑自行车等健身时,提供导航) 4(位置管理器专门为其他类型的大型交通工具导航,而不是汽车导航)
|
|||
//"headingFilter": 10, //设置当朝向改变时,每隔多少度调用一次
|
|||
"headingOrientation": 0, //设置设备当前的朝向 0(未知) 1(竖屏) 2(竖屏正方向,颠倒) 3(屏左方向,主按钮在右侧) 4(横屏右方向,主按钮在左侧) 5(设备正面朝上) 6(设备正面朝下)
|
|||
"poiUpdateInterval": 10, //指定POI的更新间隔 单位秒
|
|||
"enableAntiMockLocation": true //是否允许开启反作弊检查
|
|||
var kic = { |
|||
"apiKey": "BPMBZ-VSKE3-MC23F-O3KZO-AZGI7-PXFJI", //ios才有效,andorid的在App原生插件配置里设置
|
|||
"deviceID": "oaid" //andorid必须设置,默认使用oaid,ios无需设置
|
|||
} |
|||
// 获取系统信息
|
|||
const systemInfo = uni.getSystemInfoSync(); |
|||
if (systemInfo.platform === 'ios') { // 如果是 iOS 平台
|
|||
var dicc = { |
|||
"isAgree": true |
|||
} |
|||
|
|||
KJTencentLocation.setLocationManagerInfo(dic) |
|||
|
|||
export function requestSingleFreshLocation() { |
|||
console.log(KJTencentLocation.requestSingleFreshLocation) |
|||
return new Promise((resolve,reject)=>{ |
|||
KJTencentLocation.requestSingleFreshLocation((res) => { |
|||
resolve(res) |
|||
}); |
|||
}) |
|||
|
|||
} |
|||
KJTencentLocation.setUserAgreePrivacy(dicc); |
|||
KJTencentLocation.getLocationAuthorizationStatus((res) => { |
|||
console.log("getLocationAuthorizationStatus:" + JSON.stringify(res)); |
|||
/** |
|||
* status - 权限状态 0-还没决定 1-受限制 2-拒绝 3、4、5-已授权 |
|||
* */ |
|||
}); |
|||
KJTencentLocation.requestLocationAuthorization((res) => { |
|||
console.log("requestLocationAuthorization:" + JSON.stringify(res)); |
|||
/** |
|||
* status - 权限状态 0-还没决定 1-受限制 2-拒绝 3、4、5-已授权 |
|||
* */ |
|||
}); |
|||
delete kic.deviceID |
|||
} |
|||
KJTencentLocation.init(kic); |
|||
|
|||
|
|||
|
|||
var dic = { |
|||
"coordinateType": "GCJ02", //设置坐标系 GCJ02(火星坐标,即国测局坐标) WGS84(地球坐标,注:如果是海外,无论设置的是火星坐标还是地球坐标,返回的都是地球坐标)
|
|||
"requestLevel": 4, //请求等级 0(包含经纬度) 1(包含经纬度, 位置名称, 位置地址) 3(包含经纬度,位置所处的中国大陆行政区划) 4(包含经纬度,位置所处的中国大陆行政区划及周边POI列表)
|
|||
/**以下andorid有效**/ |
|||
"mockEnable": false, //是否允许mockGps数据 设置为true后将不对mockGps进行过滤,是否允许应用对GPS进行模拟
|
|||
"systemCacheEnable": false, //是否允许在定位失败情况下返回系统缓存位置
|
|||
//"deviceID":"xxx", //设备id
|
|||
"userAgreePrivacy": true, //设置用户是否同意隐私协议政策
|
|||
"allowCache": true, //是否允许使用缓存
|
|||
"allowDirection": true, //是否允许使用设备传感器获取方向
|
|||
"allowGPS": true, //是否允许使用GPS进行定位
|
|||
"gnssSource": 20, //设置优先卫星定位信号来源 改设置仅对连续定位生效,20(GPS) 21(北斗)
|
|||
"gpsFirst": false, //首次定位是否等待卫星定位结果,默认为false 当设置为true时,首次定位会等待卫星定位结果,默认等待时间为30s,超时将返回网络定位结果
|
|||
"gpsFirstTimeOut": 10000, //卫星定位优先时,等待卫星定位结果对的超时时间,单位: ms, 最多等待60s.
|
|||
"indoorLocationMode": true, //启动室内定位
|
|||
"interval": 5000, //定位周期(位置监听器回调周期), 单位为 ms (毫秒).
|
|||
"locMode": 10, //定位模式 10(高精度定位模式,将同时使用网络定位和卫星定位,优先返回精度高的定位) 11(仅网络定位模式,将不启动gps定位,只使用网络定位,可以减少耗电量,但定位精度有所降低) 12(仅GPS定位模式)
|
|||
// "phoneNumber": "111",
|
|||
// "qq": "xxx",
|
|||
// "smallAppKey": "xxx", //设置分渠道的key编码号,例如小程序里面区分业务.
|
|||
/**以下ios有效**/ |
|||
"distanceFilter": 0, //设置定位的最小更新距离
|
|||
"desiredAccuracy": "best", //设置定位精度 bestForNavigation best nearestTenMeters hundredMeters kilometer threeKilometers
|
|||
"pausesLocationUpdatesAutomatically": false, //定设置位是否会被系统自动暂停
|
|||
"allowsBackgroundLocationUpdates": true, //设置是否允许后台定位 为true 需要配置manifest.json->App常用其它设置->后台运行能力 location
|
|||
"activityType": 1, //设置用户的活动类型 1(未知的出行活动类型) 2(位置管理器专门为出行活动为汽车的时候导航) 3(位置管理器专门为步行、跑步、骑自行车等健身时,提供导航) 4(位置管理器专门为其他类型的大型交通工具导航,而不是汽车导航)
|
|||
//"headingFilter": 10, //设置当朝向改变时,每隔多少度调用一次
|
|||
"headingOrientation": 0, //设置设备当前的朝向 0(未知) 1(竖屏) 2(竖屏正方向,颠倒) 3(屏左方向,主按钮在右侧) 4(横屏右方向,主按钮在左侧) 5(设备正面朝上) 6(设备正面朝下)
|
|||
"poiUpdateInterval": 10, //指定POI的更新间隔 单位秒
|
|||
"enableAntiMockLocation": true //是否允许开启反作弊检查
|
|||
} |
|||
|
|||
KJTencentLocation.setLocationManagerInfo(dic) |
|||
|
|||
|
|||
|
|||
|
|||
export function requestSingleFreshLocation() { |
|||
return new Promise((resolve, reject) => { |
|||
console.log(KJTencentLocation.requestSingleFreshLocation) |
|||
KJTencentLocation.requestSingleFreshLocation((res) => { |
|||
console.log(res) |
|||
if (systemInfo.platform === 'ios') { // 如果是 iOS 平台
|
|||
if (res.location.fakeCode != 0) { |
|||
uni.$u.toast('请关闭虚拟定位') |
|||
let obj = { |
|||
location: { |
|||
latitude: '', |
|||
longitude: '', |
|||
city: '虚拟定位' |
|||
} |
|||
} |
|||
resolve(obj) |
|||
} |
|||
} |
|||
resolve(res) |
|||
}); |
|||
}) |
|||
} |
@ -1,741 +0,0 @@ |
|||
/** |
|||
* 微信小程序JavaScriptSDK |
|||
* |
|||
* @version 1.1 |
|||
* @date 2019-01-20 |
|||
*/ |
|||
|
|||
var ERROR_CONF = { |
|||
KEY_ERR: 311, |
|||
KEY_ERR_MSG: 'key格式错误', |
|||
PARAM_ERR: 310, |
|||
PARAM_ERR_MSG: '请求参数信息有误', |
|||
SYSTEM_ERR: 600, |
|||
SYSTEM_ERR_MSG: '系统错误', |
|||
WX_ERR_CODE: 1000, |
|||
WX_OK_CODE: 200 |
|||
}; |
|||
var BASE_URL = 'https://apis.map.qq.com/ws/'; |
|||
var URL_SEARCH = BASE_URL + 'place/v1/search'; |
|||
var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion'; |
|||
var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/'; |
|||
var URL_CITY_LIST = BASE_URL + 'district/v1/list'; |
|||
var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren'; |
|||
var URL_DISTANCE = BASE_URL + 'distance/v1/'; |
|||
var EARTH_RADIUS = 6378136.49; |
|||
var Utils = { |
|||
/** |
|||
* 得到终点query字符串 |
|||
* @param {Array|String} 检索数据 |
|||
*/ |
|||
location2query(data) { |
|||
if (typeof data == 'string') { |
|||
return data; |
|||
} |
|||
var query = ''; |
|||
for (var i = 0; i < data.length; i++) { |
|||
var d = data[i]; |
|||
if (!!query) { |
|||
query += ';'; |
|||
} |
|||
if (d.location) { |
|||
query = query + d.location.lat + ',' + d.location.lng; |
|||
} |
|||
if (d.latitude && d.longitude) { |
|||
query = query + d.latitude + ',' + d.longitude; |
|||
} |
|||
} |
|||
return query; |
|||
}, |
|||
|
|||
/** |
|||
* 计算角度 |
|||
*/ |
|||
rad(d) { |
|||
return d * Math.PI / 180.0; |
|||
}, |
|||
/** |
|||
* 处理终点location数组 |
|||
* @return 返回终点数组 |
|||
*/ |
|||
getEndLocation(location){ |
|||
var to = location.split(';'); |
|||
var endLocation = []; |
|||
for (var i = 0; i < to.length; i++) { |
|||
endLocation.push({ |
|||
lat: parseFloat(to[i].split(',')[0]), |
|||
lng: parseFloat(to[i].split(',')[1]) |
|||
}) |
|||
} |
|||
return endLocation; |
|||
}, |
|||
|
|||
/** |
|||
* 计算两点间直线距离 |
|||
* @param a 表示纬度差 |
|||
* @param b 表示经度差 |
|||
* @return 返回的是距离,单位m |
|||
*/ |
|||
getDistance(latFrom, lngFrom, latTo, lngTo) { |
|||
var radLatFrom = this.rad(latFrom); |
|||
var radLatTo = this.rad(latTo); |
|||
var a = radLatFrom - radLatTo; |
|||
var b = this.rad(lngFrom) - this.rad(lngTo); |
|||
var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2))); |
|||
distance = distance * EARTH_RADIUS; |
|||
distance = Math.round(distance * 10000) / 10000; |
|||
return parseFloat(distance.toFixed(0)); |
|||
}, |
|||
/** |
|||
* 使用微信接口进行定位 |
|||
*/ |
|||
getWXLocation(success, fail, complete) { |
|||
wx.getLocation({ |
|||
type: 'gcj02', |
|||
success: success, |
|||
fail: fail, |
|||
complete: complete |
|||
}); |
|||
}, |
|||
|
|||
/** |
|||
* 获取location参数 |
|||
*/ |
|||
getLocationParam(location) { |
|||
if (typeof location == 'string') { |
|||
var locationArr = location.split(','); |
|||
if (locationArr.length === 2) { |
|||
location = { |
|||
latitude: location.split(',')[0], |
|||
longitude: location.split(',')[1] |
|||
}; |
|||
} else { |
|||
location = {}; |
|||
} |
|||
} |
|||
return location; |
|||
}, |
|||
|
|||
/** |
|||
* 回调函数默认处理 |
|||
*/ |
|||
polyfillParam(param) { |
|||
param.success = param.success || function () { }; |
|||
param.fail = param.fail || function () { }; |
|||
param.complete = param.complete || function () { }; |
|||
}, |
|||
|
|||
/** |
|||
* 验证param对应的key值是否为空 |
|||
* |
|||
* @param {Object} param 接口参数 |
|||
* @param {String} key 对应参数的key |
|||
*/ |
|||
checkParamKeyEmpty(param, key) { |
|||
if (!param[key]) { |
|||
var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误'); |
|||
param.fail(errconf); |
|||
param.complete(errconf); |
|||
return true; |
|||
} |
|||
return false; |
|||
}, |
|||
|
|||
/** |
|||
* 验证参数中是否存在检索词keyword |
|||
* |
|||
* @param {Object} param 接口参数 |
|||
*/ |
|||
checkKeyword(param){ |
|||
return !this.checkParamKeyEmpty(param, 'keyword'); |
|||
}, |
|||
|
|||
/** |
|||
* 验证location值 |
|||
* |
|||
* @param {Object} param 接口参数 |
|||
*/ |
|||
checkLocation(param) { |
|||
var location = this.getLocationParam(param.location); |
|||
if (!location || !location.latitude || !location.longitude) { |
|||
var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误'); |
|||
param.fail(errconf); |
|||
param.complete(errconf); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
|
|||
/** |
|||
* 构造错误数据结构 |
|||
* @param {Number} errCode 错误码 |
|||
* @param {Number} errMsg 错误描述 |
|||
*/ |
|||
buildErrorConfig(errCode, errMsg) { |
|||
return { |
|||
status: errCode, |
|||
message: errMsg |
|||
}; |
|||
}, |
|||
|
|||
/** |
|||
* |
|||
* 数据处理函数 |
|||
* 根据传入参数不同处理不同数据 |
|||
* @param {String} feature 功能名称 |
|||
* search 地点搜索 |
|||
* suggest关键词提示 |
|||
* reverseGeocoder逆地址解析 |
|||
* geocoder地址解析 |
|||
* getCityList获取城市列表:父集 |
|||
* getDistrictByCityId获取区县列表:子集 |
|||
* calculateDistance距离计算 |
|||
* @param {Object} param 接口参数 |
|||
* @param {Object} data 数据 |
|||
*/ |
|||
handleData(param,data,feature){ |
|||
if (feature === 'search') { |
|||
var searchResult = data.data; |
|||
var searchSimplify = []; |
|||
for (var i = 0; i < searchResult.length; i++) { |
|||
searchSimplify.push({ |
|||
id: searchResult[i].id || null, |
|||
title: searchResult[i].title || null, |
|||
latitude: searchResult[i].location && searchResult[i].location.lat || null, |
|||
longitude: searchResult[i].location && searchResult[i].location.lng || null, |
|||
address: searchResult[i].address || null, |
|||
category: searchResult[i].category || null, |
|||
tel: searchResult[i].tel || null, |
|||
adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null, |
|||
city: searchResult[i].ad_info && searchResult[i].ad_info.city || null, |
|||
district: searchResult[i].ad_info && searchResult[i].ad_info.district || null, |
|||
province: searchResult[i].ad_info && searchResult[i].ad_info.province || null |
|||
}) |
|||
} |
|||
param.success(data, { |
|||
searchResult: searchResult, |
|||
searchSimplify: searchSimplify |
|||
}) |
|||
} else if (feature === 'suggest') { |
|||
var suggestResult = data.data; |
|||
var suggestSimplify = []; |
|||
for (var i = 0; i < suggestResult.length; i++) { |
|||
suggestSimplify.push({ |
|||
adcode: suggestResult[i].adcode || null, |
|||
address: suggestResult[i].address || null, |
|||
category: suggestResult[i].category || null, |
|||
city: suggestResult[i].city || null, |
|||
district: suggestResult[i].district || null, |
|||
id: suggestResult[i].id || null, |
|||
latitude: suggestResult[i].location && suggestResult[i].location.lat || null, |
|||
longitude: suggestResult[i].location && suggestResult[i].location.lng || null, |
|||
province: suggestResult[i].province || null, |
|||
title: suggestResult[i].title || null, |
|||
type: suggestResult[i].type || null |
|||
}) |
|||
} |
|||
param.success(data, { |
|||
suggestResult: suggestResult, |
|||
suggestSimplify: suggestSimplify |
|||
}) |
|||
} else if (feature === 'reverseGeocoder') { |
|||
var reverseGeocoderResult = data.result; |
|||
var reverseGeocoderSimplify = { |
|||
address: reverseGeocoderResult.address || null, |
|||
latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null, |
|||
longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null, |
|||
adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null, |
|||
city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null, |
|||
district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null, |
|||
nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null, |
|||
province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null, |
|||
street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null, |
|||
street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null, |
|||
recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null, |
|||
rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null |
|||
}; |
|||
if (reverseGeocoderResult.pois) {//判断是否返回周边poi
|
|||
var pois = reverseGeocoderResult.pois; |
|||
var poisSimplify = []; |
|||
for (var i = 0;i < pois.length;i++) { |
|||
poisSimplify.push({ |
|||
id: pois[i].id || null, |
|||
title: pois[i].title || null, |
|||
latitude: pois[i].location && pois[i].location.lat || null, |
|||
longitude: pois[i].location && pois[i].location.lng || null, |
|||
address: pois[i].address || null, |
|||
category: pois[i].category || null, |
|||
adcode: pois[i].ad_info && pois[i].ad_info.adcode || null, |
|||
city: pois[i].ad_info && pois[i].ad_info.city || null, |
|||
district: pois[i].ad_info && pois[i].ad_info.district || null, |
|||
province: pois[i].ad_info && pois[i].ad_info.province || null |
|||
}) |
|||
} |
|||
param.success(data,{ |
|||
reverseGeocoderResult: reverseGeocoderResult, |
|||
reverseGeocoderSimplify: reverseGeocoderSimplify, |
|||
pois: pois, |
|||
poisSimplify: poisSimplify |
|||
}) |
|||
} else { |
|||
param.success(data, { |
|||
reverseGeocoderResult: reverseGeocoderResult, |
|||
reverseGeocoderSimplify: reverseGeocoderSimplify |
|||
}) |
|||
} |
|||
} else if (feature === 'geocoder') { |
|||
var geocoderResult = data.result; |
|||
var geocoderSimplify = { |
|||
title: geocoderResult.title || null, |
|||
latitude: geocoderResult.location && geocoderResult.location.lat || null, |
|||
longitude: geocoderResult.location && geocoderResult.location.lng || null, |
|||
adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null, |
|||
province: geocoderResult.address_components && geocoderResult.address_components.province || null, |
|||
city: geocoderResult.address_components && geocoderResult.address_components.city || null, |
|||
district: geocoderResult.address_components && geocoderResult.address_components.district || null, |
|||
street: geocoderResult.address_components && geocoderResult.address_components.street || null, |
|||
street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null, |
|||
level: geocoderResult.level || null |
|||
}; |
|||
param.success(data,{ |
|||
geocoderResult: geocoderResult, |
|||
geocoderSimplify: geocoderSimplify |
|||
}); |
|||
} else if (feature === 'getCityList') { |
|||
var provinceResult = data.result[0]; |
|||
var cityResult = data.result[1]; |
|||
var districtResult = data.result[2]; |
|||
param.success(data,{ |
|||
provinceResult: provinceResult, |
|||
cityResult: cityResult, |
|||
districtResult: districtResult |
|||
}); |
|||
} else if (feature === 'getDistrictByCityId') { |
|||
var districtByCity = data.result[0]; |
|||
param.success(data, districtByCity); |
|||
} else if (feature === 'calculateDistance') { |
|||
var calculateDistanceResult = data.result.elements; |
|||
var distance = []; |
|||
for (var i = 0; i < calculateDistanceResult.length; i++){ |
|||
distance.push(calculateDistanceResult[i].distance); |
|||
} |
|||
param.success(data, { |
|||
calculateDistanceResult: calculateDistanceResult, |
|||
distance: distance |
|||
}); |
|||
} else { |
|||
param.success(data); |
|||
} |
|||
}, |
|||
|
|||
/** |
|||
* 构造微信请求参数,公共属性处理 |
|||
* |
|||
* @param {Object} param 接口参数 |
|||
* @param {Object} param 配置项 |
|||
* @param {String} feature 方法名 |
|||
*/ |
|||
buildWxRequestConfig(param, options, feature) { |
|||
var that = this; |
|||
options.header = { "content-type": "application/json" }; |
|||
options.method = 'GET'; |
|||
options.success = function (res) { |
|||
var data = res.data; |
|||
if (data.status === 0) { |
|||
that.handleData(param, data, feature); |
|||
} else { |
|||
param.fail(data); |
|||
} |
|||
}; |
|||
options.fail = function (res) { |
|||
res.statusCode = ERROR_CONF.WX_ERR_CODE; |
|||
param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); |
|||
}; |
|||
options.complete = function (res) { |
|||
var statusCode = +res.statusCode; |
|||
switch(statusCode) { |
|||
case ERROR_CONF.WX_ERR_CODE: { |
|||
param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); |
|||
break; |
|||
} |
|||
case ERROR_CONF.WX_OK_CODE: { |
|||
var data = res.data; |
|||
if (data.status === 0) { |
|||
param.complete(data); |
|||
} else { |
|||
param.complete(that.buildErrorConfig(data.status, data.message)); |
|||
} |
|||
break; |
|||
} |
|||
default:{ |
|||
param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG)); |
|||
} |
|||
|
|||
} |
|||
}; |
|||
return options; |
|||
}, |
|||
|
|||
/** |
|||
* 处理用户参数是否传入坐标进行不同的处理 |
|||
*/ |
|||
locationProcess(param, locationsuccess, locationfail, locationcomplete) { |
|||
var that = this; |
|||
locationfail = locationfail || function (res) { |
|||
res.statusCode = ERROR_CONF.WX_ERR_CODE; |
|||
param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); |
|||
}; |
|||
locationcomplete = locationcomplete || function (res) { |
|||
if (res.statusCode == ERROR_CONF.WX_ERR_CODE) { |
|||
param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); |
|||
} |
|||
}; |
|||
if (!param.location) { |
|||
that.getWXLocation(locationsuccess, locationfail, locationcomplete); |
|||
} else if (that.checkLocation(param)) { |
|||
var location = Utils.getLocationParam(param.location); |
|||
locationsuccess(location); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
|
|||
class QQMapWX { |
|||
|
|||
/** |
|||
* 构造函数 |
|||
* |
|||
* @param {Object} options 接口参数,key 为必选参数 |
|||
*/ |
|||
constructor(options) { |
|||
if (!options.key) { |
|||
throw Error('key值不能为空'); |
|||
} |
|||
this.key = options.key; |
|||
}; |
|||
|
|||
/** |
|||
* POI周边检索 |
|||
* |
|||
* @param {Object} options 接口参数对象 |
|||
* |
|||
* 参数对象结构可以参考 |
|||
* @see http://lbs.qq.com/webservice_v1/guide-search.html
|
|||
*/ |
|||
search(options) { |
|||
var that = this; |
|||
options = options || {}; |
|||
|
|||
Utils.polyfillParam(options); |
|||
|
|||
if (!Utils.checkKeyword(options)) { |
|||
return; |
|||
} |
|||
|
|||
var requestParam = { |
|||
keyword: options.keyword, |
|||
orderby: options.orderby || '_distance', |
|||
page_size: options.page_size || 10, |
|||
page_index: options.page_index || 1, |
|||
output: 'json', |
|||
key: that.key |
|||
}; |
|||
|
|||
if (options.address_format) { |
|||
requestParam.address_format = options.address_format; |
|||
} |
|||
|
|||
if (options.filter) { |
|||
requestParam.filter = options.filter; |
|||
} |
|||
|
|||
var distance = options.distance || "1000"; |
|||
var auto_extend = options.auto_extend || 1; |
|||
var region = null; |
|||
var rectangle = null; |
|||
|
|||
//判断城市限定参数
|
|||
if (options.region) { |
|||
region = options.region; |
|||
} |
|||
|
|||
//矩形限定坐标(暂时只支持字符串格式)
|
|||
if (options.rectangle) { |
|||
rectangle = options.rectangle; |
|||
} |
|||
|
|||
var locationsuccess = function (result) { |
|||
if (region && !rectangle) { |
|||
//城市限定参数拼接
|
|||
requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")"; |
|||
} else if (rectangle && !region) { |
|||
//矩形搜索
|
|||
requestParam.boundary = "rectangle(" + rectangle + ")"; |
|||
} else { |
|||
requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")"; |
|||
} |
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_SEARCH, |
|||
data: requestParam |
|||
}, 'search')); |
|||
}; |
|||
Utils.locationProcess(options, locationsuccess); |
|||
}; |
|||
|
|||
/** |
|||
* sug模糊检索 |
|||
* |
|||
* @param {Object} options 接口参数对象 |
|||
* |
|||
* 参数对象结构可以参考 |
|||
* http://lbs.qq.com/webservice_v1/guide-suggestion.html
|
|||
*/ |
|||
getSuggestion(options) { |
|||
var that = this; |
|||
options = options || {}; |
|||
Utils.polyfillParam(options); |
|||
|
|||
if (!Utils.checkKeyword(options)) { |
|||
return; |
|||
} |
|||
|
|||
var requestParam = { |
|||
keyword: options.keyword, |
|||
region: options.region || '全国', |
|||
region_fix: options.region_fix || 0, |
|||
policy: options.policy || 0, |
|||
page_size: options.page_size || 10,//控制显示条数
|
|||
page_index: options.page_index || 1,//控制页数
|
|||
get_subpois : options.get_subpois || 0,//返回子地点
|
|||
output: 'json', |
|||
key: that.key |
|||
}; |
|||
//长地址
|
|||
if (options.address_format) { |
|||
requestParam.address_format = options.address_format; |
|||
} |
|||
//过滤
|
|||
if (options.filter) { |
|||
requestParam.filter = options.filter; |
|||
} |
|||
//排序
|
|||
if (options.location) { |
|||
var locationsuccess = function (result) { |
|||
requestParam.location = result.latitude + ',' + result.longitude; |
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_SUGGESTION, |
|||
data: requestParam |
|||
}, "suggest")); |
|||
}; |
|||
Utils.locationProcess(options, locationsuccess); |
|||
} else { |
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_SUGGESTION, |
|||
data: requestParam |
|||
}, "suggest")); |
|||
} |
|||
}; |
|||
|
|||
/** |
|||
* 逆地址解析 |
|||
* |
|||
* @param {Object} options 接口参数对象 |
|||
* |
|||
* 请求参数结构可以参考 |
|||
* http://lbs.qq.com/webservice_v1/guide-gcoder.html
|
|||
*/ |
|||
reverseGeocoder(options) { |
|||
var that = this; |
|||
options = options || {}; |
|||
Utils.polyfillParam(options); |
|||
var requestParam = { |
|||
coord_type: options.coord_type || 5, |
|||
get_poi: options.get_poi || 0, |
|||
output: 'json', |
|||
key: that.key |
|||
}; |
|||
if (options.poi_options) { |
|||
requestParam.poi_options = options.poi_options |
|||
} |
|||
|
|||
var locationsuccess = function (result) { |
|||
requestParam.location = result.latitude + ',' + result.longitude; |
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_GET_GEOCODER, |
|||
data: requestParam |
|||
}, 'reverseGeocoder')); |
|||
}; |
|||
Utils.locationProcess(options, locationsuccess); |
|||
}; |
|||
|
|||
/** |
|||
* 地址解析 |
|||
* |
|||
* @param {Object} options 接口参数对象 |
|||
* |
|||
* 请求参数结构可以参考 |
|||
* http://lbs.qq.com/webservice_v1/guide-geocoder.html
|
|||
*/ |
|||
geocoder(options) { |
|||
var that = this; |
|||
options = options || {}; |
|||
Utils.polyfillParam(options); |
|||
|
|||
if (Utils.checkParamKeyEmpty(options, 'address')) { |
|||
return; |
|||
} |
|||
|
|||
var requestParam = { |
|||
address: options.address, |
|||
output: 'json', |
|||
key: that.key |
|||
}; |
|||
|
|||
//城市限定
|
|||
if (options.region) { |
|||
requestParam.region = options.region; |
|||
} |
|||
|
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_GET_GEOCODER, |
|||
data: requestParam |
|||
},'geocoder')); |
|||
}; |
|||
|
|||
|
|||
/** |
|||
* 获取城市列表 |
|||
* |
|||
* @param {Object} options 接口参数对象 |
|||
* |
|||
* 请求参数结构可以参考 |
|||
* http://lbs.qq.com/webservice_v1/guide-region.html
|
|||
*/ |
|||
getCityList(options) { |
|||
var that = this; |
|||
options = options || {}; |
|||
Utils.polyfillParam(options); |
|||
var requestParam = { |
|||
output: 'json', |
|||
key: that.key |
|||
}; |
|||
|
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_CITY_LIST, |
|||
data: requestParam |
|||
},'getCityList')); |
|||
}; |
|||
|
|||
/** |
|||
* 获取对应城市ID的区县列表 |
|||
* |
|||
* @param {Object} options 接口参数对象 |
|||
* |
|||
* 请求参数结构可以参考 |
|||
* http://lbs.qq.com/webservice_v1/guide-region.html
|
|||
*/ |
|||
getDistrictByCityId(options) { |
|||
var that = this; |
|||
options = options || {}; |
|||
Utils.polyfillParam(options); |
|||
|
|||
if (Utils.checkParamKeyEmpty(options, 'id')) { |
|||
return; |
|||
} |
|||
|
|||
var requestParam = { |
|||
id: options.id || '', |
|||
output: 'json', |
|||
key: that.key |
|||
}; |
|||
|
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_AREA_LIST, |
|||
data: requestParam |
|||
},'getDistrictByCityId')); |
|||
}; |
|||
|
|||
/** |
|||
* 用于单起点到多终点的路线距离(非直线距离)计算: |
|||
* 支持两种距离计算方式:步行和驾车。 |
|||
* 起点到终点最大限制直线距离10公里。 |
|||
* |
|||
* 新增直线距离计算。 |
|||
* |
|||
* @param {Object} options 接口参数对象 |
|||
* |
|||
* 请求参数结构可以参考 |
|||
* http://lbs.qq.com/webservice_v1/guide-distance.html
|
|||
*/ |
|||
calculateDistance(options) { |
|||
var that = this; |
|||
options = options || {}; |
|||
Utils.polyfillParam(options); |
|||
|
|||
if (Utils.checkParamKeyEmpty(options, 'to')) { |
|||
return; |
|||
} |
|||
|
|||
var requestParam = { |
|||
mode: options.mode || 'walking', |
|||
to: Utils.location2query(options.to), |
|||
output: 'json', |
|||
key: that.key |
|||
}; |
|||
|
|||
if (options.from) { |
|||
options.location = options.from; |
|||
} |
|||
|
|||
//计算直线距离
|
|||
if(requestParam.mode == 'straight'){ |
|||
var locationsuccess = function (result) { |
|||
var locationTo = Utils.getEndLocation(requestParam.to);//处理终点坐标
|
|||
var data = { |
|||
message:"query ok", |
|||
result:{ |
|||
elements:[] |
|||
}, |
|||
status:0 |
|||
}; |
|||
for (var i = 0; i < locationTo.length; i++) { |
|||
data.result.elements.push({//将坐标存入
|
|||
distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng), |
|||
duration:0, |
|||
from:{ |
|||
lat: result.latitude, |
|||
lng:result.longitude |
|||
}, |
|||
to:{ |
|||
lat: locationTo[i].lat, |
|||
lng: locationTo[i].lng |
|||
} |
|||
}); |
|||
} |
|||
var calculateResult = data.result.elements; |
|||
var distanceResult = []; |
|||
for (var i = 0; i < calculateResult.length; i++) { |
|||
distanceResult.push(calculateResult[i].distance); |
|||
} |
|||
return options.success(data,{ |
|||
calculateResult: calculateResult, |
|||
distanceResult: distanceResult |
|||
}); |
|||
}; |
|||
|
|||
Utils.locationProcess(options, locationsuccess); |
|||
} else { |
|||
var locationsuccess = function (result) { |
|||
requestParam.from = result.latitude + ',' + result.longitude; |
|||
wx.request(Utils.buildWxRequestConfig(options, { |
|||
url: URL_DISTANCE, |
|||
data: requestParam |
|||
},'calculateDistance')); |
|||
}; |
|||
|
|||
Utils.locationProcess(options, locationsuccess); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
module.exports = QQMapWX; |
3
common/sdk/qqmap-wx-jssdk.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,68 @@ |
|||
/* |
|||
en.strings |
|||
APBToygerFacade |
|||
|
|||
Created by shouyi.www on 2017/6/1. |
|||
Copyright © 2017年 DTF. All rights reserved. |
|||
*/ |
|||
|
|||
"APBToygerFacade:取消"="Cancel"; |
|||
"APBToygerFacade:再试一次"="Try Again"; |
|||
"APBToygerFacade:退出"="Quit"; |
|||
"APBToygerFacade:确定"="OK"; |
|||
"APBToygerFacade:继续"="Continue"; |
|||
"APBToygerFacade:我知道了"="Got it"; |
|||
"APBToygerFacade:其他登录方式"="Another login method"; |
|||
"APBToygerFacade:刷脸失败"="Face scan failed"; |
|||
"APBToygerFacade:当前设备不支持刷脸"="Face scan not supported on your device"; |
|||
"APBToygerFacade:当前系统不支持刷脸"="Face scan not supported on your device system"; |
|||
"APBToygerFacade:无法启动相机"="No camera permission"; |
|||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Please allow to access your camera in \"Settings\"-\"Privacy\"-\"Camera\""; |
|||
"APBToygerFacade:立即开启"="OK"; |
|||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Face scan is only available on iOS8 or above"; |
|||
"APBToygerFacade:系统错误"="System error"; |
|||
"APBToygerFacade:确定退出吗?"="Are you sure to quit face scan?"; |
|||
"APBToygerFacade:露个脸就能通过"="You can succeed by simply showing your face"; |
|||
"APBToygerFacade:操作超时"="Time out"; |
|||
"APBToygerFacade:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light"; |
|||
"APBToygerFacade:提示:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light"; |
|||
"APBToygerFacade:本次操作失败"="Sorry, face scan failed"; |
|||
"APBToygerFacade:网络不给力"="Network connection failed"; |
|||
"APBToygerFacade:登录中断"="Login interrupted"; |
|||
"APBToygerFacade:验证中断"="Face scan interrupted"; |
|||
|
|||
|
|||
"APBToygerFacade:刷脸验证"="Face Scan"; |
|||
"APBToygerFacade:请把脸放入框内保持不动"="Put your face into the frame"; |
|||
"APBToygerFacade:靠近一点"="Move closer"; |
|||
"APBToygerFacade:没有检测到脸"="No face"; |
|||
"APBToygerFacade:再清晰一点"="Face not clear"; |
|||
"APBToygerFacade:脸部亮一点"="More light"; |
|||
"APBToygerFacade:请正对手机"="No face"; |
|||
"APBToygerFacade:把脸移入圈内"="No face"; |
|||
"APBToygerFacade:离远一点"="Move farther"; |
|||
"APBToygerFacade:请保持不动"="Stay still"; |
|||
"APBToygerFacade:请注视屏幕"="Open your eyes"; |
|||
"APBToygerFacade:眨眨眼"="Blink"; |
|||
"APBToygerFacade:蚂蚁佐罗提供技术支持"=""; |
|||
|
|||
"APBToygerFacade:选择其他验证方式"="Use a different verification method"; |
|||
"APBToygerFacade:拿起手机眨眨眼"="Blink"; |
|||
"APBToygerFacade:拿起手机向左摇头"="Turn Head Left"; |
|||
"APBToygerFacade:拿起手机向右摇头"="Turn Head Right"; |
|||
"APBToygerFacade:向左摇头"="Turn Head Left"; |
|||
"APBToygerFacade:向右摇头"="Turn Head Right"; |
|||
|
|||
|
|||
"APBToygerFacade:正在处理"="Processing"; |
|||
"APBToygerFacade:首次使用,请开通刷脸"="For the first time use, please enable Face Scan"; |
|||
"APBToygerFacade:立即开通"="Enable"; |
|||
"APBToygerFacade:下次再说"="Later"; |
|||
|
|||
"APBToygerFacade:请把手机正对面部"="Face straight at the phone"; |
|||
"APBToygerFacade:即将开始人脸检测"="Get ready for face recognition"; |
|||
|
|||
"APBToygerFacade:没有认出你"="Face scan failed"; |
|||
"APBToygerFacade:未能识别人脸"="Face not detected"; |
|||
"APBToygerFacade:人脸检测中"="Face Scan"; |
|||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Too many failed attempts, please try again later"; |
@ -0,0 +1,59 @@ |
|||
"APBToygerFacade:取消"="Batalkan"; |
|||
"APBToygerFacade:再试一次"="Harap coba lagi"; |
|||
"APBToygerFacade:退出"="Keluar"; |
|||
"APBToygerFacade:确定"="OK"; |
|||
"APBToygerFacade:继续"="Lanjutkan"; |
|||
"APBToygerFacade:我知道了"="OK"; |
|||
"APBToygerFacade:其他登录方式"="Ubah Metode Logon"; |
|||
"APBToygerFacade:刷脸失败"="Pengenalan wajah gagal"; |
|||
"APBToygerFacade:当前设备不支持刷脸"="Perangkat Anda tidak mendukung pengenalan wajah"; |
|||
"APBToygerFacade:当前系统不支持刷脸"="Sistem saat ini tidak mendukung pengenalan wajah"; |
|||
"APBToygerFacade:无法启动相机"="Tidak Memiliki Izin Akses Kamera"; |
|||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Buka Pengaturan > Privasi > Kamera dan izinkan akses"; |
|||
"APBToygerFacade:立即开启"="OK"; |
|||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Hanya iOS 7 dan setelahnya yang mendukung pengenalan wajah"; |
|||
"APBToygerFacade:系统错误"="Terjadi Kesalahan Sistem"; |
|||
"APBToygerFacade:确定退出吗?"="Apakah Anda yakin ingin keluar?"; |
|||
"APBToygerFacade:露个脸就能通过"="Anda hanya perlu memperlihatkan wajah Anda"; |
|||
"APBToygerFacade:操作超时"="Waktu operasi habis"; |
|||
"APBToygerFacade:正对手机,更容易成功"="Arahkan wajah lurus menghadap ponsel untuk membuat wajah Anda lebih mudah dipindai"; |
|||
"APBToygerFacade:本次操作失败"="Operasi gagal"; |
|||
"APBToygerFacade:网络不给力"="Kondisi jaringan tidak memenuhi persyaratan"; |
|||
"APBToygerFacade:登录中断"="Logon Terganggu"; |
|||
"APBToygerFacade:验证中断"="Verifikasi terputus"; |
|||
|
|||
|
|||
"APBToygerFacade:刷脸验证"="Verifikasi dengan Pengenalan Wajah"; |
|||
"APBToygerFacade:请把脸放入框内保持不动"="Posisikan wajah Anda di dalam bingkai dan jangan bergerak"; |
|||
"APBToygerFacade:靠近一点"="Harap dekatkan wajah"; |
|||
"APBToygerFacade:没有检测到脸"="Tidak ada wajah terdeteksi"; |
|||
"APBToygerFacade:再清晰一点"="Perjelas wajah Anda"; |
|||
"APBToygerFacade:脸部亮一点"="Terangi wajah Anda"; |
|||
"APBToygerFacade:请正对手机"="Arahkan wajah lurus menghadap ponsel"; |
|||
"APBToygerFacade:请露出正脸"="Tunjukkan bagian depan wajah Anda"; |
|||
"APBToygerFacade:把脸移入圈内"="Posisikan wajah pada lingkaran"; |
|||
"APBToygerFacade:离远一点"="Harap jauhkan wajah"; |
|||
"APBToygerFacade:请保持不动"="Tetap tenang"; |
|||
"APBToygerFacade:请注视屏幕"="Lihat layar"; |
|||
"APBToygerFacade:眨眨眼"="Harap kedipkan mata"; |
|||
"APBToygerFacade:蚂蚁佐罗提供技术支持"=""; |
|||
|
|||
"APBToygerFacade:选择其他验证方式"="Ubah Metode Verifikasi"; |
|||
"APBToygerFacade:拿起手机眨眨眼"="Harap kedipkan mata"; |
|||
"APBToygerFacade:拿起手机向左摇头"="Harap menoleh ke kiri"; |
|||
"APBToygerFacade:拿起手机向右摇头"="Harap menoleh ke kanan"; |
|||
"APBToygerFacade:向左摇头"="Harap menoleh ke kiri"; |
|||
"APBToygerFacade:向右摇头"="Harap menoleh ke kanan"; |
|||
|
|||
"APBToygerFacade:正在处理"="Memproses"; |
|||
"APBToygerFacade:首次使用,请开通刷脸"="Aktifkan pengenalan wajah untuk melanjutkan"; |
|||
"APBToygerFacade:立即开通"="Aktifkan"; |
|||
"APBToygerFacade:下次再说"="Lain Kali"; |
|||
|
|||
"APBToygerFacade:请把手机正对面部"="Arahkan wajah lurus menghadap ponsel"; |
|||
"APBToygerFacade:即将开始人脸检测"="Memulai pengenalan wajah"; |
|||
|
|||
"APBToygerFacade:没有认出你"="Pengenalan wajah gagal"; |
|||
"APBToygerFacade:未能识别人脸"="Tidak ada wajah terdeteksi"; |
|||
"APBToygerFacade:人脸检测中"="Pengenalan wajah dalam proses"; |
|||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Pengenalan wajah terlalu sering dilakukan. Harap coba lagi nanti"; |
@ -0,0 +1,59 @@ |
|||
"APBToygerFacade:取消"="キャンセル"; |
|||
"APBToygerFacade:再试一次"="もう一度お試しください"; |
|||
"APBToygerFacade:退出"="終了"; |
|||
"APBToygerFacade:确定"="OK"; |
|||
"APBToygerFacade:继续"="続行"; |
|||
"APBToygerFacade:我知道了"="OK"; |
|||
"APBToygerFacade:其他登录方式"="ログイン方法を切り替え"; |
|||
"APBToygerFacade:刷脸失败"="顔を認識できませんでした"; |
|||
"APBToygerFacade:当前设备不支持刷脸"="お使いのデバイスは顔認識をサポートしていません"; |
|||
"APBToygerFacade:当前系统不支持刷脸"="顔認識をサポートしていないシステムです"; |
|||
"APBToygerFacade:无法启动相机"="カメラにアクセスできません"; |
|||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="[設定] > [プライバシー] > [カメラ] に移動し、アクセスを許可してください"; |
|||
"APBToygerFacade:立即开启"="OK"; |
|||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="顔認識は iOS 7 以降でサポートされています"; |
|||
"APBToygerFacade:系统错误"="システムエラー"; |
|||
"APBToygerFacade:确定退出吗?"="終了してもよろしいですか"; |
|||
"APBToygerFacade:露个脸就能通过"="顔を見せるだけです"; |
|||
"APBToygerFacade:操作超时"="操作がタイムアウトしました"; |
|||
"APBToygerFacade:正对手机,更容易成功"="顔をスキャンしやすいように、電話の方を向いてください"; |
|||
"APBToygerFacade:本次操作失败"="操作に失敗しました"; |
|||
"APBToygerFacade:网络不给力"="ネットワークの状態が要件を満たしていません"; |
|||
"APBToygerFacade:登录中断"="ログインが中断されました"; |
|||
"APBToygerFacade:验证中断"="検証が中断されました"; |
|||
|
|||
|
|||
"APBToygerFacade:刷脸验证"="顔認識による検証"; |
|||
"APBToygerFacade:请把脸放入框内保持不动"="フレームの内側に顔が入るようにして、動かないでください"; |
|||
"APBToygerFacade:靠近一点"="近づいてください"; |
|||
"APBToygerFacade:没有检测到脸"="顔が検出されません"; |
|||
"APBToygerFacade:再清晰一点"="顔をはっきりさせてください"; |
|||
"APBToygerFacade:脸部亮一点"="顔を明るくしてください"; |
|||
"APBToygerFacade:请正对手机"="電話の方を向いてください"; |
|||
"APBToygerFacade:请露出正脸"="顔の正面を見せてください"; |
|||
"APBToygerFacade:把脸移入圈内"="顔を円の中に入れてください"; |
|||
"APBToygerFacade:离远一点"="離れてください"; |
|||
"APBToygerFacade:请保持不动"="動かないでください"; |
|||
"APBToygerFacade:请注视屏幕"="画面を見てください"; |
|||
"APBToygerFacade:眨眨眼"="まばたきしてください"; |
|||
"APBToygerFacade:蚂蚁佐罗提供技术支持"=""; |
|||
|
|||
"APBToygerFacade:选择其他验证方式"="検証方法を変更"; |
|||
"APBToygerFacade:拿起手机眨眨眼"="まばたきしてください"; |
|||
"APBToygerFacade:拿起手机向左摇头"="頭を左に"; |
|||
"APBToygerFacade:拿起手机向右摇头"="頭を右に"; |
|||
"APBToygerFacade:向左摇头"="頭を左に"; |
|||
"APBToygerFacade:向右摇头"="頭を右に"; |
|||
|
|||
"APBToygerFacade:正在处理"="処理中"; |
|||
"APBToygerFacade:首次使用,请开通刷脸"="顔認識を有効化して続行します"; |
|||
"APBToygerFacade:立即开通"="有効化"; |
|||
"APBToygerFacade:下次再说"="後で"; |
|||
|
|||
"APBToygerFacade:请把手机正对面部"="電話の方を向いてください"; |
|||
"APBToygerFacade:即将开始人脸检测"="顔認識を開始"; |
|||
|
|||
"APBToygerFacade:没有认出你"="顔を認識できませんでした"; |
|||
"APBToygerFacade:未能识别人脸"="顔が検出されません"; |
|||
"APBToygerFacade:人脸检测中"="顔を認識中です"; |
|||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="顔認識が頻繁に実行されています。後でもう一度やり直してください"; |
@ -0,0 +1,59 @@ |
|||
"APBToygerFacade:取消"="취소"; |
|||
"APBToygerFacade:再试一次"="다시 시도하세요"; |
|||
"APBToygerFacade:退出"="종료"; |
|||
"APBToygerFacade:确定"="확인"; |
|||
"APBToygerFacade:继续"="계속"; |
|||
"APBToygerFacade:我知道了"="확인"; |
|||
"APBToygerFacade:其他登录方式"="로그온 방법 전환"; |
|||
"APBToygerFacade:刷脸失败"="안면 인식에 실패했습니다"; |
|||
"APBToygerFacade:当前设备不支持刷脸"="귀하의 디바이스는 안면 인식을 지원하지 않습니다"; |
|||
"APBToygerFacade:当前系统不支持刷脸"="현재 시스템은 안면 인식을 지원하지 않습니다"; |
|||
"APBToygerFacade:无法启动相机"="카메라 권한이 없습니다"; |
|||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="설정 > 개인 > 카메라에서 접근 권한을 부여하십시오"; |
|||
"APBToygerFacade:立即开启"="OK"; |
|||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="iOS 7 및 그 이상의 버전에서만 안면 인식이 지원됩니다"; |
|||
"APBToygerFacade:系统错误"="시스템 오류"; |
|||
"APBToygerFacade:确定退出吗?"="정말로 종료하시겠습니까?"; |
|||
"APBToygerFacade:露个脸就能通过"="얼굴만 보여주시면 됩니다"; |
|||
"APBToygerFacade:操作超时"="작업 시간이 초과되었습니다"; |
|||
"APBToygerFacade:正对手机,更容易成功"="얼굴을 더 쉽게 스캔할 수 있도록 휴대전화를 정면으로 바라보세요"; |
|||
"APBToygerFacade:本次操作失败"="작동에 실패했습니다"; |
|||
"APBToygerFacade:网络不给力"="네트워크 상태가 요구 사항을 충족하지 않습니다"; |
|||
"APBToygerFacade:登录中断"="로그온이 중단되었습니다"; |
|||
"APBToygerFacade:验证中断"="확인이 중단되었습니다"; |
|||
|
|||
|
|||
"APBToygerFacade:刷脸验证"="안면 인식을 통한 인증"; |
|||
"APBToygerFacade:请把脸放入框内保持不动"="얼굴이 프레임 안으로 들어오도록 위치한 다음 움직이지 말고 가만히 계십시오"; |
|||
"APBToygerFacade:靠近一点"="더 가까이 움직이세요"; |
|||
"APBToygerFacade:没有检测到脸"="감지된 얼굴이 없습니다"; |
|||
"APBToygerFacade:再清晰一点"="얼굴을 좀더 선명하게 만드세요"; |
|||
"APBToygerFacade:脸部亮一点"="얼굴을 밝게 만드세요"; |
|||
"APBToygerFacade:请正对手机"="휴대전화를 정면으로 바라보세요"; |
|||
"APBToygerFacade:请露出正脸"="얼굴의 정면을 보여주세요"; |
|||
"APBToygerFacade:把脸移入圈内"="얼굴이 원 안에 들어오도록 움직이세요"; |
|||
"APBToygerFacade:离远一点"="더 멀리 움직이세요"; |
|||
"APBToygerFacade:请保持不动"="가만히 계십시오"; |
|||
"APBToygerFacade:请注视屏幕"="화면을 바라보세요"; |
|||
"APBToygerFacade:眨眨眼"="눈을 깜빡이세요"; |
|||
"APBToygerFacade:蚂蚁佐罗提供技术支持"=""; |
|||
|
|||
"APBToygerFacade:选择其他验证方式"="인증 방법을 변경합니다"; |
|||
"APBToygerFacade:拿起手机眨眨眼"="눈을 깜빡이세요"; |
|||
"APBToygerFacade:拿起手机向左摇头"="좌측으로 고개를 돌립니다"; |
|||
"APBToygerFacade:拿起手机向右摇头"="우측으로 고개를 돌립니다"; |
|||
"APBToygerFacade:向左摇头"="좌측으로 고개를 돌립니다"; |
|||
"APBToygerFacade:向右摇头"="우측으로 고개를 돌립니다"; |
|||
|
|||
"APBToygerFacade:正在处理"="처리 중"; |
|||
"APBToygerFacade:首次使用,请开通刷脸"="안면 인식을 활성화하여 계속 진행합니다"; |
|||
"APBToygerFacade:立即开通"="활성화하기"; |
|||
"APBToygerFacade:下次再说"="나중에 하기"; |
|||
|
|||
"APBToygerFacade:请把手机正对面部"="휴대전화를 정면으로 바라보세요"; |
|||
"APBToygerFacade:即将开始人脸检测"="안면 인식 시작"; |
|||
|
|||
"APBToygerFacade:没有认出你"="안면 인식에 실패했습니다"; |
|||
"APBToygerFacade:未能识别人脸"="감지된 얼굴이 없습니다"; |
|||
"APBToygerFacade:人脸检测中"="얼굴 인식 중"; |
|||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="안면 인식이 연속으로 실행되었습니다. 나중에 다시 시도하세요"; |
@ -0,0 +1,68 @@ |
|||
/* |
|||
zh-HK.strings |
|||
APBToygerFacade |
|||
|
|||
Created by shouyi.www on 2017/6/1. |
|||
Copyright © 2017年 DTF. All rights reserved. |
|||
*/ |
|||
|
|||
|
|||
"APBToygerFacade:取消"="取消"; |
|||
"APBToygerFacade:再试一次"="再試一次"; |
|||
"APBToygerFacade:退出"="退出"; |
|||
"APBToygerFacade:确定"="確定"; |
|||
"APBToygerFacade:继续"="继续"; |
|||
"APBToygerFacade:我知道了"="我知道了"; |
|||
"APBToygerFacade:其他登录方式"="其他登录方式"; |
|||
"APBToygerFacade:刷脸失败"="刷臉失敗"; |
|||
"APBToygerFacade:当前设备不支持刷脸"="目前系統不支援刷臉"; |
|||
"APBToygerFacade:当前系统不支持刷脸"="目前設備不支援刷臉"; |
|||
"APBToygerFacade:无法启动相机"="無法啟動相機"; |
|||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限"; |
|||
"APBToygerFacade:立即开启"="開通權限"; |
|||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="刷脸仅在iOS7及以上系统可用"; |
|||
"APBToygerFacade:系统错误"="系統錯誤"; |
|||
"APBToygerFacade:确定退出吗?"="確定退出嗎?"; |
|||
"APBToygerFacade:露个脸就能通过"="露個臉就能通過"; |
|||
"APBToygerFacade:操作超时"="操作超時"; |
|||
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功"; |
|||
"APBToygerFacade:本次操作失败"="本次操作失敗"; |
|||
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試"; |
|||
"APBToygerFacade:登录中断"="登入中斷"; |
|||
"APBToygerFacade:验证中断"="驗證中斷"; |
|||
|
|||
|
|||
"APBToygerFacade:刷脸验证"="刷臉驗證"; |
|||
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動"; |
|||
"APBToygerFacade:靠近一点"="靠近一點"; |
|||
"APBToygerFacade:没有检测到脸"="沒有檢測到臉"; |
|||
"APBToygerFacade:再清晰一点"="再清晰一點"; |
|||
"APBToygerFacade:脸部亮一点"="光線再亮點"; |
|||
"APBToygerFacade:请正对手机"="請正視手機"; |
|||
"APBToygerFacade:请露出正脸"="請露出正臉"; |
|||
"APBToygerFacade:把脸移入圈内"="把臉移入框內"; |
|||
"APBToygerFacade:离远一点"="離遠一點"; |
|||
"APBToygerFacade:请保持不动"="請保持不動"; |
|||
"APBToygerFacade:请注视屏幕"="請注視屏幕"; |
|||
"APBToygerFacade:眨眨眼"="眨眨眼"; |
|||
"APBToygerFacade:蚂蚁佐罗提供技术支持"=""; |
|||
|
|||
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式"; |
|||
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼"; |
|||
"APBToygerFacade:拿起手机向左摇头"="拿著手機,向左搖頭"; |
|||
"APBToygerFacade:拿起手机向右摇头"="拿著手機,向右搖頭"; |
|||
"APBToygerFacade:向左摇头"="向左搖頭"; |
|||
"APBToygerFacade:向右摇头"="向右搖頭"; |
|||
|
|||
"APBToygerFacade:正在处理"="正在處理"; |
|||
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉"; |
|||
"APBToygerFacade:立即开通"="立即開通"; |
|||
"APBToygerFacade:下次再说"="下次再說"; |
|||
|
|||
"APBToygerFacade:请把手机正对面部"="請把手機正對面部"; |
|||
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測"; |
|||
|
|||
"APBToygerFacade:没有认出你"="沒有認出你"; |
|||
"APBToygerFacade:未能识别人脸"="未能識別人臉"; |
|||
"APBToygerFacade:人脸检测中"="人臉檢測中"; |
|||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試"; |
@ -0,0 +1,68 @@ |
|||
/* |
|||
zh-Hans.strings |
|||
APBToygerFacade |
|||
|
|||
Created by shouyi.www on 2017/6/1. |
|||
Copyright © 2017年 DTF. All rights reserved. |
|||
*/ |
|||
|
|||
|
|||
"APBToygerFacade:取消"="取消"; |
|||
"APBToygerFacade:再试一次"="再试一次"; |
|||
"APBToygerFacade:退出"="退出"; |
|||
"APBToygerFacade:确定"="确定"; |
|||
"APBToygerFacade:继续"="继续"; |
|||
"APBToygerFacade:我知道了"="我知道了"; |
|||
"APBToygerFacade:其他登录方式"="其他登录方式"; |
|||
"APBToygerFacade:刷脸失败"="刷脸失败"; |
|||
"APBToygerFacade:当前设备不支持刷脸"="当前设备不支持刷脸"; |
|||
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸"; |
|||
"APBToygerFacade:无法启动相机"="无法启动相机"; |
|||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="请到“设置-隐私-相机”开启权限"; |
|||
"APBToygerFacade:立即开启"="立即开启"; |
|||
"APBToygerFacade:刷脸仅在iOS8及以上版本可用"="刷脸仅在iOS8及以上版本可用"; |
|||
"APBToygerFacade:系统错误"="系统错误"; |
|||
"APBToygerFacade:确定退出吗?"="确定退出吗?"; |
|||
"APBToygerFacade:露个脸就能通过"="露个脸就能通过"; |
|||
"APBToygerFacade:操作超时"="操作超时"; |
|||
"APBToygerFacade:正对手机,更容易成功"="正对手机,更容易成功"; |
|||
"APBToygerFacade:本次操作失败"="本次操作失败"; |
|||
"APBToygerFacade:网络不给力"="网络不给力"; |
|||
"APBToygerFacade:登录中断"="登录中断"; |
|||
"APBToygerFacade:验证中断"="验证中断"; |
|||
|
|||
|
|||
"APBToygerFacade:刷脸验证"="刷脸验证"; |
|||
"APBToygerFacade:请把脸放入框内保持不动"="请把脸移入圈内保持不动"; |
|||
"APBToygerFacade:靠近一点"="靠近一点"; |
|||
"APBToygerFacade:没有检测到脸"="没有检测到脸"; |
|||
"APBToygerFacade:再清晰一点"="再清晰一点"; |
|||
"APBToygerFacade:脸部亮一点"="脸部亮一点"; |
|||
"APBToygerFacade:请正对手机"="请正对手机"; |
|||
"APBToygerFacade:请露出正脸"="请露出正脸"; |
|||
"APBToygerFacade:把脸移入圈内"="把脸移入圈内"; |
|||
"APBToygerFacade:离远一点"="离远一点"; |
|||
"APBToygerFacade:请保持不动"="请保持不动"; |
|||
"APBToygerFacade:请注视屏幕"="请注视屏幕"; |
|||
"APBToygerFacade:眨眨眼"="眨眨眼"; |
|||
"APBToygerFacade:蚂蚁佐罗提供技术支持"=""; |
|||
|
|||
"APBToygerFacade:选择其他验证方式"="选择其他验证方式"; |
|||
"APBToygerFacade:拿起手机眨眨眼"="拿起手机,眨眨眼"; |
|||
"APBToygerFacade:拿起手机向左摇头"="拿起手机,向左摇头"; |
|||
"APBToygerFacade:拿起手机向右摇头"="拿起手机,向右摇头"; |
|||
"APBToygerFacade:向左摇头"="向左摇头"; |
|||
"APBToygerFacade:向右摇头"="向右摇头"; |
|||
|
|||
"APBToygerFacade:正在处理"="正在处理"; |
|||
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,请开通刷脸"; |
|||
"APBToygerFacade:立即开通"="立即开通"; |
|||
"APBToygerFacade:下次再说"="下次再说"; |
|||
|
|||
"APBToygerFacade:请把手机正对面部"="请把手机正对面部"; |
|||
"APBToygerFacade:即将开始人脸检测"="即将开始人脸检测"; |
|||
|
|||
"APBToygerFacade:没有认出你"="没有认出你"; |
|||
"APBToygerFacade:未能识别人脸"="未能识别人脸"; |
|||
"APBToygerFacade:人脸检测中"="人脸检测中"; |
|||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷脸失败次数过多,请稍后再试"; |
@ -0,0 +1,68 @@ |
|||
/* |
|||
zh-Hant.strings |
|||
APBToygerFacade |
|||
|
|||
Created by shouyi.www on 2017/6/1. |
|||
Copyright © 2017年 DTF. All rights reserved. |
|||
*/ |
|||
|
|||
|
|||
"APBToygerFacade:取消"="取消"; |
|||
"APBToygerFacade:再试一次"="再試一次"; |
|||
"APBToygerFacade:退出"="退出"; |
|||
"APBToygerFacade:确定"="確定"; |
|||
"APBToygerFacade:继续"="繼續"; |
|||
"APBToygerFacade:我知道了"="我知道了"; |
|||
"APBToygerFacade:其他登录方式"="其他登入方式"; |
|||
"APBToygerFacade:刷脸失败"="刷臉失敗"; |
|||
"APBToygerFacade:当前设备不支持刷脸"="目前設備不支援刷臉服務"; |
|||
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸"; |
|||
"APBToygerFacade:无法启动相机"="無法啟動相機"; |
|||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限"; |
|||
"APBToygerFacade:立即开启"="開通權限"; |
|||
"APBToygerFacade:刷脸仅在iOS8及以上系统可用"="刷脸仅在iOS8及以上系统可用"; |
|||
"APBToygerFacade:系统错误"="系統錯誤"; |
|||
"APBToygerFacade:确定退出吗?"="確定退出嗎?"; |
|||
"APBToygerFacade:露个脸就能通过"="露個臉就能通過"; |
|||
"APBToygerFacade:操作超时"="操作超時"; |
|||
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功"; |
|||
"APBToygerFacade:本次操作失败"="本次操作失敗"; |
|||
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試"; |
|||
"APBToygerFacade:登录中断"="登入中斷"; |
|||
"APBToygerFacade:验证中断"="驗證中斷"; |
|||
|
|||
|
|||
"APBToygerFacade:刷脸验证"="刷臉驗證"; |
|||
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動"; |
|||
"APBToygerFacade:靠近一点"="靠近一點"; |
|||
"APBToygerFacade:没有检测到脸"="沒有檢測到臉"; |
|||
"APBToygerFacade:再清晰一点"="再清晰一點"; |
|||
"APBToygerFacade:脸部亮一点"="光線再亮點"; |
|||
"APBToygerFacade:请正对手机"="請正視手機"; |
|||
"APBToygerFacade:请露出正脸"="請露出正臉"; |
|||
"APBToygerFacade:把脸移入圈内"="把臉移入框內"; |
|||
"APBToygerFacade:离远一点"="離遠一點"; |
|||
"APBToygerFacade:请保持不动"="請保持不動"; |
|||
"APBToygerFacade:请注视屏幕"="請注視屏幕"; |
|||
"APBToygerFacade:眨眨眼"="眨眨眼"; |
|||
"APBToygerFacade:蚂蚁佐罗提供技术支持"=""; |
|||
|
|||
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式"; |
|||
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼"; |
|||
"APBToygerFacade:拿起手机向左摇头"="拿起手機,向左搖頭"; |
|||
"APBToygerFacade:拿起手机向右摇头"="拿起手機,向右搖頭"; |
|||
"APBToygerFacade:向左摇头"="向左搖頭"; |
|||
"APBToygerFacade:向右摇头"="向右搖頭"; |
|||
|
|||
"APBToygerFacade:正在处理"="正在處理"; |
|||
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉"; |
|||
"APBToygerFacade:立即开通"="立即開通"; |
|||
"APBToygerFacade:下次再说"="下次再說"; |
|||
|
|||
"APBToygerFacade:请把手机正对面部"="請把手機正對面部"; |
|||
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測"; |
|||
|
|||
"APBToygerFacade:没有认出你"="沒有認出你"; |
|||
"APBToygerFacade:未能识别人脸"="未能識別人臉"; |
|||
"APBToygerFacade:人脸检测中"="人臉檢測中"; |
|||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試"; |
@ -0,0 +1,76 @@ |
|||
// |
|||
// APFBaseTask.h |
|||
// APFaceDetectBiz |
|||
// |
|||
// Created by 晗羽 on 8/25/16. |
|||
// Copyright © 2016 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <UIKit/UIKit.h> |
|||
#import <Foundation/Foundation.h> |
|||
#import <BioAuthEngine/IBioAuthTask.h> |
|||
#import <BioAuthEngine/APBTaskContext.h> |
|||
#import <BioAuthEngine/APBLogger.h> |
|||
#import <BioAuthEngine/AFEAlertView.h> |
|||
#import <APBToygerFacade/APBToygerUtils.h> |
|||
#import <BioAuthEngine/APBToygerRemoteConfig.h> |
|||
#import <BioAuthEngine/APBToygerBehavlogManager.h> |
|||
//#import "APBToygerDataCenter.h" |
|||
#import <BioAuthEngine/BioAuthCommonSetting.h> |
|||
#import <APBToygerFacade/APBToygerViewController.h> |
|||
|
|||
@class DTFLogMonitor,APBToygerDataCenter; |
|||
|
|||
typedef void (^APFAlertExtraAction)(); |
|||
|
|||
@interface APBToygerBaseTask : NSObject <IBioAuthTask> |
|||
|
|||
//协议定义的属性 |
|||
@property(nonatomic, copy)NSString *taskName; //任务名 |
|||
@property(nonatomic, strong)APBTaskContext *context; //任务数据 |
|||
@property(nonatomic, weak)NSMutableDictionary *pipeInfo; //共享数据 |
|||
//公用属性 |
|||
@property(nonatomic, weak)UIViewController *parentViewController; //父viewController |
|||
@property(nonatomic, weak)APBToygerViewController *currentViewController; //当前viewController |
|||
@property(nonatomic, weak)UIView *currentView; //当前显示的界面 |
|||
@property(nonatomic, copy)commandBlock bioCommandBlock; //对框架进行操作的block |
|||
@property(nonatomic, strong)APBToygerRemoteConfig * bisConfig; //bis下放的配置参数 |
|||
@property(nonatomic, strong)APBToygerDataCenter * dataCenter; //行为日志 |
|||
@property(nonatomic, copy)NSString *bisToken; //bisToken |
|||
@property(nonatomic, assign)NSInteger currentRetryCnt; //当前重试次数 |
|||
@property(nonatomic, assign)BOOL soundStatus; //当前声音状态 |
|||
//@property(nonatomic, assign)BOOL isLoginMode; //当前场景是否为登录场景 |
|||
@property(nonatomic, assign)BOOL isMYBank; //是否是网商银行 |
|||
@property(nonatomic, strong)DTFLogMonitor *monitor; //埋点 |
|||
|
|||
- (void)exitWithResult:(APBResultType)result failReason:(NSString *)failReason retCodeSub:(NSString *)retCodeSub retMessageSub:(NSString *)retMessageSub; |
|||
|
|||
- (void)eventQuitWithCompletionCallback:(BioAuthExecCallback)callback; |
|||
/** |
|||
* 用户选择重试 |
|||
*/ |
|||
- (void)handleRetryActionWithScene:(NSString *)scene |
|||
buttonTitle:(NSString *)title |
|||
extAction:(APFAlertExtraAction)action; |
|||
|
|||
/** |
|||
* 用户选择退出 |
|||
*/ |
|||
- (void)handleExitActionWithScene:(NSString *)scene |
|||
buttonTitle:(NSString *)title |
|||
exitReason:(APBResultType)reason |
|||
extAction:(APFAlertExtraAction)action; |
|||
|
|||
/** |
|||
* 用户选择继续 |
|||
*/ |
|||
- (void)handleContinueActionWithScene:(NSString *)scene |
|||
buttonTitle:(NSString *)title |
|||
extaction:(APFAlertExtraAction)action; |
|||
|
|||
/** |
|||
* 消除VC的方式,加菲和樱桃不同 |
|||
*/ |
|||
- (void)dismissViewControllerAnimated: (BOOL)flag completion:(void (^ __nullable)(void))completion; |
|||
|
|||
@end |
@ -0,0 +1,19 @@ |
|||
// |
|||
// APFCherryDetectTask.h |
|||
// APBToygerFacade |
|||
// |
|||
// Created by richard on 01/02/2018. |
|||
// Copyright © 2018 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import <BioAuthEngine/AFEStatusBar.h> |
|||
#import <APBToygerFacade/APBToygerBaseTask.h> |
|||
#import <BioAuthEngine/BioAuthEngine.h> |
|||
#import <DTFUtility/CameraService.h> |
|||
|
|||
@interface APBToygerCherryDetectTask : APBToygerBaseTask <DTFCameraServiceDelegate, DTFFaceViewDelegate> |
|||
|
|||
@property(nonatomic, assign)BOOL photinusFlags; |
|||
|
|||
@end |
@ -0,0 +1,26 @@ |
|||
// |
|||
// APFCherryUploadTask.h |
|||
// APFaceDetectBiz |
|||
// |
|||
// Created by yukun.tyk on 28/11/2016. |
|||
// Copyright © 2016 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import <APBToygerFacade/APBToygerUploadTask.h> |
|||
#import <BioAuthEngine/APBToygerDataCenter.h> |
|||
|
|||
typedef NS_ENUM(NSInteger, APBToygerRemoteCommand) |
|||
{ |
|||
APBToyger_REMOTE_COMMAND_PASS = 1001, //比对通过 |
|||
APBToyger_REMOTE_COMMAND_CONTINUE = 1002, //需要继续采集 |
|||
APBToyger_REMOTE_COMMAND_FAIL = 2001, //比对失败 |
|||
APBToyger_REMOTE_COMMAND_RETRY = 2002, //需要重试 |
|||
}; |
|||
|
|||
|
|||
@interface APBToygerCherryUploadTask : APBToygerUploadTask <APBToygerDataCenterDelegate> |
|||
|
|||
- (APBToygerRemoteCommand)remoteCommandFromString:(NSString *)code; |
|||
|
|||
@end |
@ -0,0 +1,36 @@ |
|||
// |
|||
// APFaceFacade.h |
|||
// APFaceDetectBiz |
|||
// |
|||
// Created by 晗羽 on 8/25/16. |
|||
// Copyright © 2016 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import <BioAuthEngine/IBioAuthFactor.h> |
|||
|
|||
@interface APBToygerFacade : NSObject <IBioAuthFactor> |
|||
|
|||
+(void)setTokenid:(NSString*)info; |
|||
+(NSString*)getTokenid; |
|||
|
|||
@end |
|||
|
|||
#import <APBToygerFacade/APBToygerCherryDetectTask.h> |
|||
#import <APBToygerFacade/APBToygerBaseTask.h> |
|||
#import <APBToygerFacade/APBToygerPresentTask.h> |
|||
#import <APBToygerFacade/APBToygerCherryUploadTask.h> |
|||
#import <APBToygerFacade/APBToygerUtils.h> |
|||
#import <APBToygerFacade/APBToygerUploadTask.h> |
|||
#import <APBToygerFacade/APBToygerFacadeDefine.h> |
|||
#import <BioAuthEngine/APBToygerRemoteConfig.h> |
|||
#import <BioAuthEngine/APBToygerBehavlogManager.h> |
|||
#import <BioAuthEngine/APBToygerDataCenter.h> |
|||
#import <APBToygerFacade/APBToygerViewController.h> |
|||
#import <UIKit/UIKit.h> |
|||
|
|||
//! Project version number for APBToygerFacade. |
|||
FOUNDATION_EXPORT double APBToygerFacadeVersionNumber; |
|||
|
|||
//! Project version string for APBToygerFacade. |
|||
FOUNDATION_EXPORT const unsigned char APBToygerFacadeVersionString[]; |
@ -0,0 +1,130 @@ |
|||
// |
|||
// APFCherryDefine.h |
|||
// APBToygerFacade |
|||
// |
|||
// Created by shouyi.www on 27/02/2017. |
|||
// Copyright © 2017 DTF. All rights reserved. |
|||
// |
|||
|
|||
#ifndef APBToygerFacadeDefine_h |
|||
#define APBToygerFacadeDefine_h |
|||
|
|||
|
|||
static float normalized_distance(float current_value, float best_value, float range) { |
|||
return fabsf((current_value - best_value) / range); |
|||
} |
|||
|
|||
//typedef struct toyger_status_evaluator_t { |
|||
// float pitch; |
|||
// float yaw; |
|||
// float width; |
|||
// |
|||
// float best_pitch; |
|||
// float best_yaw; |
|||
// float best_width; |
|||
// float pitch_range; |
|||
// float yaw_range; |
|||
// float width_range; |
|||
// float pitch_weight; |
|||
// float yaw_weight; |
|||
// float width_weight; |
|||
// |
|||
// toyger_status_evaluator_t(float pitch_ = -0.3, float pitch_range_ = 0.7, float best_pitch_ = 0, float pitch_weight_ = 1, |
|||
// float yaw_ = -0.6, float yaw_range_ = 0.6, float best_yaw_ = 0, float yaw_weight_ = 1, |
|||
// float width_ = 0.2, float width_range_ = 1.2, float best_width_ = 0.7, float width_weight_ = 1){ |
|||
// pitch = pitch_; |
|||
// yaw = yaw_; |
|||
// width = width_; |
|||
// pitch_range = pitch_range_; |
|||
// yaw_range = yaw_range_; |
|||
// width_range = width_range_; |
|||
// best_pitch = best_pitch_; |
|||
// best_yaw = best_yaw_; |
|||
// best_width = best_width_; |
|||
// pitch_weight = pitch_weight_; |
|||
// yaw_weight = yaw_weight_; |
|||
// width_weight = width_weight_; |
|||
// } |
|||
// |
|||
// void reset(){ |
|||
// pitch = -0.3; |
|||
// yaw = -0.6; |
|||
// width = 0.2; |
|||
// } |
|||
// |
|||
// void update(float pitch_, float yaw_, float width_) { |
|||
// pitch = pitch_; |
|||
// yaw = yaw_; |
|||
// width = width_; |
|||
// } |
|||
// |
|||
// float evaluateProgress(float pitch_, float yaw_, float width_){ |
|||
// return |
|||
// (normalized_distance(pitch_, best_pitch, pitch_range) * pitch_weight + |
|||
// normalized_distance(yaw_, best_yaw, yaw_range) * yaw_weight + |
|||
// normalized_distance(width_, best_width, width_range) * width_weight) / |
|||
// (pitch_weight + yaw_weight + width_weight); |
|||
// } |
|||
// |
|||
// float evaluate(){ |
|||
// return 1 - |
|||
// (normalized_distance(pitch, best_pitch, pitch_range) * pitch_weight + |
|||
// normalized_distance(yaw, best_yaw, yaw_range) * yaw_weight + |
|||
// normalized_distance(width, best_width, width_range) * width_weight) / |
|||
// (pitch_weight + yaw_weight + width_weight); |
|||
// } |
|||
// |
|||
//}ToygerStatusEvaluator; |
|||
|
|||
|
|||
typedef struct apbtoyger_tip_evaluator_t { |
|||
bool pose_end; |
|||
bool has_face; |
|||
bool did_blink; |
|||
bool pos_okay; |
|||
bool quality_okay; |
|||
bool under_exposure; |
|||
bool face_width_too_small; |
|||
bool face_width_too_big; |
|||
bool integrity_fail; |
|||
bool yaw_fail; |
|||
bool pitch_fail; |
|||
bool tremble_fail; |
|||
bool did_checkSeven; |
|||
int tip_timer_wait_cnt; |
|||
bool tip_show_switch; |
|||
int tip_message; |
|||
|
|||
apbtoyger_tip_evaluator_t(){ |
|||
reset(); |
|||
} |
|||
|
|||
void reset(){ |
|||
has_face = false; |
|||
did_blink = false; |
|||
pos_okay = false; |
|||
under_exposure = false; |
|||
face_width_too_small = false; |
|||
integrity_fail = false; |
|||
pitch_fail = false; |
|||
face_width_too_big = false; |
|||
yaw_fail = false; |
|||
tremble_fail = false; |
|||
tip_timer_wait_cnt = 0; |
|||
tip_show_switch = true; |
|||
did_checkSeven = false; |
|||
quality_okay = false; |
|||
pose_end = false; |
|||
tip_message =0; |
|||
} |
|||
}APBToygerTipEvaluator; |
|||
|
|||
|
|||
//UI样式 |
|||
typedef enum : NSUInteger { |
|||
APBToygerUIStyleFPPCherry = 991, //991 FPP樱桃(废弃) |
|||
APBToygerUIStyleCherry, //992 zFace樱桃 |
|||
APBToygerUIStyleGarfield, //993 加菲 |
|||
} APBToygerUIStyle; |
|||
|
|||
#endif |
@ -0,0 +1,25 @@ |
|||
// |
|||
// APFPresentTask.h |
|||
// APFaceDetectBiz |
|||
// |
|||
// Created by 晗羽 on 8/26/16. |
|||
// Copyright © 2016 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <APBToygerFacade/APBToygerBaseTask.h> |
|||
#import <DTFUtility/CameraService.h> |
|||
#import <BioAuthEngine/DTFFaceViewProtocol.h> |
|||
/** |
|||
* @author Skye Ying, 16-08-26 13:08:04 |
|||
* |
|||
* 新建VC,启动整个view |
|||
*/ |
|||
@interface APBToygerPresentTask : APBToygerBaseTask |
|||
|
|||
@property(nonatomic, strong) id<DTFFaceViewProtocol> faceView; |
|||
|
|||
-(void) postCameraPresentwithCamera:(DTFCameraService *) cameraService; |
|||
|
|||
-(void) presentAnimated: (BOOL)flag completion:(void (^ __nullable)(void))completion; |
|||
|
|||
@end |
@ -0,0 +1,27 @@ |
|||
// |
|||
// APBToygerUploadTask.h |
|||
// APBToygerFacade |
|||
// |
|||
// Created by Dan Cong on 29/1/2018. |
|||
// Copyright © 2018 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <APBToygerFacade/APBToygerBaseTask.h> |
|||
|
|||
/** |
|||
上传基类,用于下沉多种UI(樱桃和加菲)下通用的逻辑 |
|||
*/ |
|||
@interface APBToygerUploadTask : APBToygerBaseTask |
|||
|
|||
- (void)uploadImage; |
|||
|
|||
- (void)didFinishUploadWithSuccess:(BOOL)success |
|||
retCode:(NSString *)retCode |
|||
retMessage:(NSString *)msg |
|||
extInfo:(NSString *)ext; |
|||
|
|||
- (void)handleFailWithRetCodeSub:(NSString *)retCodeSub retMessageSub:(NSString *)retMessageSub; |
|||
|
|||
- (void)requestAgain; |
|||
|
|||
@end |
@ -0,0 +1,61 @@ |
|||
// |
|||
// APFUtils.h |
|||
// APFaceDetectBiz |
|||
// |
|||
// Created by 晗羽 on 8/25/16. |
|||
// Copyright © 2016 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import <APBToygerFacade/APBToygerFacadeDefine.h> |
|||
|
|||
//#import "APFaceDetectBizFacade.h" |
|||
|
|||
//主线程同步操作 |
|||
#define SYNC_MAINTHREAD_BEGIN_APBT [APBToygerUtils APBToygerMainThread:^{ |
|||
#define SYNC_MAINTHREAD_END_APBT }]; |
|||
|
|||
#define LOCK(locker, ...) dispatch_semaphore_wait(locker, DISPATCH_TIME_FOREVER); \ |
|||
__VA_ARGS__; \ |
|||
dispatch_semaphore_signal(locker); |
|||
|
|||
@class MGLivenessDetectionFrameEncodedData; |
|||
|
|||
@interface APBToygerUtils : NSObject |
|||
|
|||
+ (void)APBToygerMainThread:(dispatch_block_t)block; |
|||
|
|||
+ (NSString *)getTextContentforKey:(NSString*)keyName; |
|||
+ (NSString *)localizedTextForKey:(NSString *)key; |
|||
+ (NSBundle *)getBundle; |
|||
|
|||
+ (int)getCodefrom:(NSString *)bisToken withLength:(int)codeLen; |
|||
//+ (NSString *)getActionNoticeByActionType:(APFLiveActionType) actionType; |
|||
|
|||
//检查文件是否存在 |
|||
+ (BOOL) checkFileunderPath:(NSString *) filePath; |
|||
|
|||
//写入文件 |
|||
//如果文件存在,不重写,返回失败。 |
|||
//如果文件不再在,写入,返回写入结果 |
|||
+ (BOOL) writeFileunderPath:(NSString *) filePath; |
|||
|
|||
//删除文件 |
|||
+ (BOOL) removeFileunderPath:(NSString *) filePath; |
|||
|
|||
//随机文件名 |
|||
+ (NSString *)randomString:(NSInteger)len; |
|||
|
|||
+ (NSString *)localizedStringForKey:(NSString *)key; |
|||
|
|||
+ (UIImage *)loadImageFromBundleNamed:(NSString *)imageName; |
|||
|
|||
+ (UIWindow *)lastWindow; |
|||
|
|||
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize; |
|||
|
|||
@end |
|||
|
|||
|
|||
|
|||
|
@ -0,0 +1,34 @@ |
|||
// |
|||
// APFViewController.h |
|||
// APFaceDetectBiz |
|||
// |
|||
// Created by 晗羽 on 8/25/16. |
|||
// Copyright © 2016 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <UIKit/UIKit.h> |
|||
#import <ToygerService/ToygerService.h> |
|||
#import <BioAuthEngine/DTFFaceViewProtocol.h> |
|||
|
|||
NSString *const kAbnormalClose = @"abnormalclose"; |
|||
@class APBToygerBaseTask; |
|||
@interface APBToygerViewController : UIViewController |
|||
|
|||
@property(nonatomic, strong) DTFLogMonitor *monitor; |
|||
@property(nonatomic, strong) id<DTFFaceViewProtocol> faceView; |
|||
@property(nonatomic, assign) BOOL isClose; |
|||
@property(nonatomic, strong) NSString *platformInfo; |
|||
@property(nonatomic, weak) APBToygerBaseTask *baseTask; |
|||
|
|||
- (void)startFaceRecognition:(AVCaptureVideoPreviewLayer *)layer; |
|||
- (void)addWebGuideView:(UIView *)guideView; |
|||
- (void)handleFaceStateChange:(ToygerMessage)state |
|||
stateTips:(NSString *)tips |
|||
actionGuide:(NSString *)guide |
|||
progress:(CGFloat)progress; |
|||
- (void)showLoadingView; |
|||
- (void)dismissLoadingView; |
|||
- (void)setPhotinusColor:(UIColor *)color; |
|||
- (void)showBlur:(UIImage *)image; |
|||
|
|||
@end |
@ -0,0 +1,6 @@ |
|||
framework module APBToygerFacade { |
|||
umbrella header "APBToygerFacade.h" |
|||
|
|||
export * |
|||
module * { export * } |
|||
} |
@ -0,0 +1,122 @@ |
|||
// |
|||
// APDID.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by eric on 2021/2/7. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import "ASSTokenResult.h" |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
typedef void(^ASSSecureSdkCallback)(ASSTokenResult* result, NSString* error); |
|||
|
|||
typedef void(^ASSSecureSdkOpenCallback)(NSString* token, int errorCode); |
|||
|
|||
@interface APDID : NSObject |
|||
|
|||
/* |
|||
异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求 |
|||
@param params 初始化的字典参数,包含三项内容:tid、userid、environment; |
|||
tid与userid选传,传入可以保证vkeyid与其正确关联,取不到传入空字符串; |
|||
环境变量请与app设置中的环境相关联,字典中的value包括线上,预发,测试,日常; |
|||
@param callback 初始化完成后的结果回调 |
|||
|
|||
Asynchronously initialize vkeyid(apdid), recommend to invoke this API when app launches, and cashier view presents. |
|||
Inside SDK we will decide whether to launch network request or not based on timestamp and device info. |
|||
No thread requirement. |
|||
@param params: Initialized parameters, includes 3 key-value pairs: tid, userid,environment; |
|||
Tid and userid are optional, they can be associated with vkeyid(apdid) if passed in. |
|||
If the values for tid and userid are not available, pass in empty NSString(@""). |
|||
@param callback: Callback block when token is available |
|||
*/ |
|||
+ (void) initToken:(NSDictionary*)params callback:(ASSSecureSdkCallback)callback; |
|||
|
|||
/* |
|||
同步获取vkeyid完整信息,包括vkeyid,token,clientkey,无网络请求; |
|||
如果首次安装app,且首次网络请求未完成或失败,将会返回降级措施:vkeyid会返回客户端随机串clientkey,token将会返回空。 |
|||
|
|||
Synchronously get full info of vkeyid(apdid), token and clientkey, no network requests. |
|||
If the app is installed for the first time and first network request failed, it would return degradation result: vkeyid would be clientkey which is a client-side generated random string, token would be empty NSString @"" |
|||
*/ |
|||
+ (ASSTokenResult*)getToken DEPRECATED_MSG_ATTRIBUTE("use getTokenResult instead"); |
|||
|
|||
/* |
|||
同步获取vkeyid完整信息,包括vkeyid,token,clientkey,无网络请求; |
|||
如果首次安装app,且首次网络请求未完成或失败,将会返回降级措施:vkeyid会返回客户端随机串clientkey,token将会返回空。 |
|||
|
|||
Synchronously get full info of vkeyid(apdid), token and clientkey, no network requests. |
|||
If the app is installed for the first time and first network request failed, it would return degradation result: vkeyid would be clientkey which is a client-side generated random string, token would be empty NSString @"" |
|||
*/ |
|||
+ (ASSTokenResult*)getTokenResult; |
|||
|
|||
|
|||
+ (ASSTokenResult *)getTokenResult:(NSString*)appName appKeyClient:(NSString*)appKeyClient; |
|||
|
|||
|
|||
//===================lazada api====================// |
|||
|
|||
/* |
|||
异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求 |
|||
@param appName 应用名称 |
|||
|
|||
@param appKeyClient 应用客户端密钥 |
|||
|
|||
@param callback 初始化完成后的结果回调,以Token作为参数 |
|||
|
|||
*/ |
|||
+ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient callback:(ASSSecureSdkOpenCallback)callback; |
|||
|
|||
/* |
|||
同步接口返回token |
|||
|
|||
@param appName 应用名称 |
|||
|
|||
@param appKeyClient 应用客户端密钥 |
|||
|
|||
*/ |
|||
+ (NSString *)getResultToken; |
|||
|
|||
/* |
|||
同步接口返回token |
|||
|
|||
@param appName 应用名称 |
|||
|
|||
@param appKeyClient 应用客户端密钥 |
|||
|
|||
*/ |
|||
+ (NSString *)getResultToken:(NSString*)appName appKeyClient:(NSString*)appKeyClient; |
|||
|
|||
//===================TMN api====================// |
|||
/* |
|||
异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求 |
|||
@param appName 应用名称 |
|||
|
|||
@param appKeyClient 应用客户端密钥 |
|||
|
|||
@param sessionId 业务方传入自己的id |
|||
|
|||
@param callback 初始化完成后的结果回调,以Token作为参数 |
|||
|
|||
*/ |
|||
|
|||
+ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient sessionId:(NSString *)sessionId callback:(ASSSecureSdkOpenCallback)callback; |
|||
|
|||
|
|||
//===================ae api====================// |
|||
|
|||
/* |
|||
强制上报接口 |
|||
@param params 初始化的字典参数,包含四项内容:umid、tid、userid、environment; |
|||
umid必传,tid与userid选传,传入可以保证vkeyid与其正确关联,取不到传入空字符串; |
|||
环境变量请与app设置中的环境相关联,字典中的value包括线上,预发,测试,日常; |
|||
@param callback 初始化完成后的结果回调 |
|||
|
|||
*/ |
|||
+ (void) updateToken:(NSDictionary*)params callback:(ASSSecureSdkCallback)callback; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,41 @@ |
|||
// |
|||
// APDeviceColor.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by eric on 2021/2/25. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface APDeviceColor : NSObject |
|||
|
|||
/* |
|||
* getColorLabel 设备染色接口 |
|||
* |
|||
* @param bizToken 业务场景 |
|||
* @param extParams 扩展参数 |
|||
* @param errInfo 错误信息 |
|||
* |
|||
* @return 设备染色数据 |
|||
*/ |
|||
+ (NSString*) getColorLabel: (NSString*) bizToken |
|||
ext: (NSDictionary *) extParams |
|||
error: (NSError **) errInfo; |
|||
|
|||
/* |
|||
* getColorLabel 设备染色接口 |
|||
* |
|||
* @param extParams 扩展参数 |
|||
* @param errInfo 错误信息 |
|||
* |
|||
* @return 设备染色数据 |
|||
*/ |
|||
+ (NSString*) getColorLabel: (NSDictionary *) extParams |
|||
error: (NSError **) errInfo; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,32 @@ |
|||
// |
|||
// APDynamic.h |
|||
// APPSecuritySDK-Sign |
|||
// |
|||
// Created by eric on 2021/2/25. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface APDynamic : NSObject |
|||
|
|||
/* |
|||
* dynamicCheckDispatch 动态攻防脚本运行 |
|||
* |
|||
* @param dict 动态攻防脚本 |
|||
*/ |
|||
+ (void)dynamicCheckDispatch:(NSDictionary *)dict; |
|||
|
|||
/* |
|||
* dynamicCheckDispatch 动态攻防脚本运行,动态攻防脚本运行后会自动上传, 无特殊需求不建议 |
|||
* |
|||
* @param dict 动态攻防脚本 |
|||
* @param callback 运行结果回调 |
|||
*/ |
|||
+ (void)dynamicCheckDispatch:(NSDictionary *)dict withCallBack: (void(^)(Boolean, NSString *))callback; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,21 @@ |
|||
// |
|||
// APRiskConfigReportRequest.h |
|||
// APPSecuritySDK-Common |
|||
// |
|||
// Created by eric on 2021/8/16. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface APRiskConfigReportRequest : NSObject |
|||
|
|||
@property(nonatomic, strong) NSString* os; |
|||
@property(nonatomic, strong) NSString* apdid; |
|||
@property(nonatomic, strong) NSDictionary* deviceDataMap; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,19 @@ |
|||
// |
|||
// APRiskConfigReportResponse.h |
|||
// APPSecuritySDK-Common |
|||
// |
|||
// Created by eric on 2021/8/16. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface APRiskConfigReportResponse : NSObject |
|||
|
|||
@property(nonatomic, strong) NSDictionary* resultData; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,20 @@ |
|||
// |
|||
// APRiskConfigServiceProtocol.h |
|||
// APPSecuritySDKAdapter |
|||
// |
|||
// Created by hongren on 2020/9/7. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
#import "APRiskSyncHandlerProtocol.h" |
|||
|
|||
@protocol APRiskConfigServiceProtocol <NSObject> |
|||
|
|||
@required |
|||
- (NSString *)stringValueForKey:(NSString *)key; |
|||
|
|||
- (void)addConfigChangeListener:(id<APRiskSyncHandlerProtocol>)handler forKey:(NSString *)key; |
|||
|
|||
- (void)refreshConfig:(NSDictionary *)tConfigMap from:(NSString *)sourceType; |
|||
|
|||
@end |
|||
|
@ -0,0 +1,14 @@ |
|||
// |
|||
// APRiskFileUploadProtocol.h |
|||
// APPSecuritySDKAdapter |
|||
// |
|||
// Created by hongren on 2020/9/7. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
|
|||
@protocol APRiskFileUploadProtocol <NSObject> |
|||
|
|||
@required |
|||
- (NSString *)uploadCustomFile:(NSString *)path; |
|||
|
|||
@end |
@ -0,0 +1,21 @@ |
|||
// |
|||
// APRiskLoggerProtocol.h |
|||
// APPSecuritySDK-Common |
|||
// |
|||
// Created by eric on 2021/6/25. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@protocol APRiskLoggerProtocol <NSObject> |
|||
|
|||
@required |
|||
|
|||
-(void)print:(NSString *)format, ...NS_REQUIRES_NIL_TERMINATION; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,30 @@ |
|||
// |
|||
// APRiskRPCProtocol.h |
|||
// APPSecuritySDKAdapter |
|||
// |
|||
// Created by hongren on 2020/9/7. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import "APRiskReportRequest.h" |
|||
#import "APRiskReportResponse.h" |
|||
#import "APRiskRpcConfiguration.h" |
|||
#import "APRiskConfigReportRequest.h" |
|||
#import "APRiskConfigReportResponse.h" |
|||
|
|||
@protocol APRiskRPCProtocol <NSObject> |
|||
//gateway |
|||
|
|||
@required |
|||
- (APRiskReportResponse *)sendStaticRequest:(APRiskReportRequest *)data |
|||
config:(APRiskRpcConfiguration*)cfg; |
|||
|
|||
@required |
|||
- (APRiskConfigReportResponse *)sendConfigReportRequest:(APRiskConfigReportRequest *)data |
|||
config:(APRiskRpcConfiguration*)cfg; |
|||
|
|||
@required |
|||
- (BOOL)updateLog:(NSString*)log |
|||
config:(APRiskRpcConfiguration*)cfg; |
|||
|
|||
@end |
@ -0,0 +1,29 @@ |
|||
// |
|||
// APRiskRemoteLoggerProtocol.h |
|||
// APPSecuritySDKAdapter |
|||
// |
|||
// Created by hongren on 2020/9/7. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
|
|||
@protocol APRiskRemoteLoggerProtocol <NSObject> |
|||
|
|||
@required |
|||
- (void)writeLogWithActionId:(NSString *)event |
|||
extParams:(NSArray *)args |
|||
appId:(NSString *)appId |
|||
seed:(NSString *)seed |
|||
ucId:(NSString *)ucId; |
|||
|
|||
@required |
|||
- (void)writeLogWithActionId:(NSString *)event |
|||
extParams:(NSArray *)args |
|||
appId:(NSString *)appId |
|||
seed:(NSString *)seed |
|||
ucId:(NSString *)ucId |
|||
bizType:(NSString *)bizType; |
|||
|
|||
@required |
|||
- (void)writeEventLog:(NSDictionary *)dict; |
|||
|
|||
@end |
@ -0,0 +1,68 @@ |
|||
// |
|||
// APRiskReportRequest.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by hongren on 2020/9/7. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
@interface APRiskReportRequest : NSObject |
|||
|
|||
/** |
|||
* os type: android|ios" |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *os; |
|||
/** |
|||
* device id for ios for static report, or device id for dynamic report both for ios and android |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *apdid; |
|||
/** |
|||
* public region device id for android for static report |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *pubApdid; |
|||
/** |
|||
* private region device id for android for static report |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *priApdid; |
|||
/** |
|||
* apdid token |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *token; |
|||
/** |
|||
* umid token |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *umidToken; |
|||
/** |
|||
* rpc version |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *version; |
|||
/** |
|||
* last apdid time (create time) |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *lastTime; |
|||
|
|||
/** |
|||
* dynamicKey |
|||
*/ |
|||
@property(nonatomic,strong) NSString* dynamicKey; |
|||
/** |
|||
* device info map |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSDictionary *dataMap; |
|||
+ (Class)dataMapElementClass; |
|||
|
|||
@property(nonatomic,strong) NSDictionary *bizData; |
|||
+ (Class)bizDataElementClass; |
|||
|
|||
@end |
@ -0,0 +1,65 @@ |
|||
// |
|||
// APRiskReportResponse.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by hongren on 2020/9/7. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
@interface APRiskReportResponse : NSObject |
|||
|
|||
/** |
|||
* success or not |
|||
*/ |
|||
|
|||
@property(nonatomic, assign) BOOL success; |
|||
/** |
|||
* result code |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *resultCode; |
|||
|
|||
/** |
|||
* device id |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *apdid; |
|||
/** |
|||
* apdid token |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *token; |
|||
/** |
|||
* current apdid time (create time) |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *currentTime; |
|||
/** |
|||
* rpc version |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *version; |
|||
/** |
|||
* switch for vkey |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *vkeySwitch; |
|||
/** |
|||
* switch for BugTrack |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *bugTrackSwitch; |
|||
/** |
|||
* version for applist cmd |
|||
*/ |
|||
|
|||
@property(nonatomic, strong) NSString *appListVer; |
|||
|
|||
@property(nonatomic, strong) NSString *dynamicKey; |
|||
|
|||
@property(nonatomic, strong) NSDictionary *resultData; |
|||
+ (Class)resultDataElementClass; |
|||
|
|||
@end |
@ -0,0 +1,20 @@ |
|||
// |
|||
// APRiskRpcConfiguration.h |
|||
// APPSecuritySDKAdapter |
|||
// |
|||
// Created by hongren on 2020/9/8. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
#import <Foundation/Foundation.h> |
|||
|
|||
@interface APRiskRpcConfiguration : NSObject |
|||
// 超时时间 |
|||
@property(nonatomic, assign) int timeout; |
|||
|
|||
// 网关地址 |
|||
@property(nonatomic, strong) NSString* gatewayURL; |
|||
|
|||
// workspaceid和appid |
|||
@property(nonatomic, strong) NSDictionary *headers; |
|||
|
|||
@end |
@ -0,0 +1,21 @@ |
|||
// |
|||
// APRiskSyncHandlerProtocol.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by eric on 2020/10/15. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@protocol APRiskSyncHandlerProtocol <NSObject> |
|||
|
|||
@required |
|||
|
|||
-(void) handleWithBizType: (NSString *) bizType andData: (NSString *) data; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,28 @@ |
|||
// |
|||
// APRiskSyncServiceProtocol.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by eric on 2020/10/15. |
|||
// Copyright © 2020 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import "APRiskSyncHandlerProtocol.h" |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
static NSString* const kEdgeBizTypeGlobal = @"EDGE-GLOBAL"; |
|||
static NSString* const kEdgeBizTypeSingle = @"EDGE-SINGLE"; |
|||
static NSString* const kEdgeBizTypeUid = @"EDGE-SINGLE-USER"; |
|||
static NSString* const kEdgeBizTypeSyncDegradeToConfig = @"EDGE-SYNC-DEGRADE-TO-CONFIG"; |
|||
|
|||
@protocol APRiskSyncServiceProtocol <NSObject> |
|||
|
|||
@required |
|||
|
|||
-(void) registerHandler:(id<APRiskSyncHandlerProtocol>)handler; |
|||
-(void) registerSyncBiz; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,41 @@ |
|||
// |
|||
// APSecRDS.h |
|||
// APSecRDS |
|||
// |
|||
// Created by xingchen on 15/4/8. |
|||
// Copyright (c) 2015年 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import <UIKit/UIKit.h> |
|||
|
|||
@interface APSecRDS : NSObject |
|||
|
|||
/* |
|||
appname 当前app的名称 |
|||
appver 当前app的版本 |
|||
sdkname 当前sdk的名称 |
|||
sdkver 当前sdk的版本 |
|||
user 淘宝/支付宝身份 |
|||
pagesrc 淘宝/支付宝 |
|||
page 当前页面标识 |
|||
|
|||
*/ |
|||
-(void) onPageWithView:(NSString*)pageName args:(NSDictionary*) inArgs; |
|||
-(NSString*) onPageEndWithView:(NSString*) pageName user:(NSString*) userName; |
|||
-(NSString*) onPageEndZipDataWithView:(NSString*)pageName user:(NSString*)userName; |
|||
|
|||
-(void) onControlClickWithView:(NSString*) pageName ctrl: (NSString*)ctrlName; |
|||
|
|||
//按键信息 |
|||
-(void) onKeyDownWithView:(NSString*) pageName ctrl:(NSString*) ctrlName keyCode:(NSString*)keyValue; |
|||
|
|||
//焦点信息 |
|||
-(void) onGetFocusWithView:(NSString*)pageName ctrl:(NSString*) ctrlName; |
|||
-(void) onLostFocusWithView:(NSString*) pageName ctrl:(NSString*) ctrlName; |
|||
|
|||
//触屏信息 |
|||
-(void) onTouchScreenWithView:(NSString*)pageName ctrl:(NSString*) ctrlName point:(CGPoint) pt; |
|||
|
|||
|
|||
@end |
@ -0,0 +1,48 @@ |
|||
// |
|||
// APSecStore.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by eric on 2021/3/10. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface APSecStore : NSObject |
|||
|
|||
/* |
|||
*功能: 从keychain中载入字符串 |
|||
*线程安全: 是 |
|||
*可重入: 是 |
|||
*@return: 成功返回key对应字符串,失败返回nil |
|||
*@param key:不能为nil |
|||
*@param error:失败时保存错误信息 |
|||
*/ |
|||
+(NSString*) loadKey:(NSString*) key error:(NSError **)error; |
|||
|
|||
/* |
|||
*功能: 将字符串(键-值对)存入keychain |
|||
*线程安全: 是 |
|||
*可重入: 是 |
|||
*@return: 成功返回yes,失败返回no |
|||
*@param key:不能为nil |
|||
*@param value:不能为nil |
|||
*@param error:失败时保存错误信息 |
|||
*/ |
|||
+(BOOL) saveKey:(NSString*) key Value:(NSString*)value error:(NSError **)error; |
|||
|
|||
/* |
|||
*功能: 从keychain中删除字符串(键-值对) |
|||
*线程安全: 是 |
|||
*可重入: 是 |
|||
*@return: 成功返回yes,失败返回no |
|||
*@param key:不能为nil |
|||
*@param error:失败时保存错误信息 |
|||
*/ |
|||
+(BOOL) deleteKey:(NSString*) key error:(NSError **)error; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,113 @@ |
|||
// |
|||
// ASSSecureSdk.h |
|||
// APSecSecuritySDK |
|||
// |
|||
// Created by xingchen on 15/2/26. |
|||
// Copyright (c) 2015年 Alipay. All rights reserved. |
|||
// |
|||
#import <Foundation/Foundation.h> |
|||
|
|||
//初始化API的字典参数中,TID的key |
|||
//key for TID in the NSDictionary parameter for initToken:callback: API |
|||
extern NSString * const ASS_TID; |
|||
|
|||
//初始化API的字典参数中,userid的key |
|||
//key for USERID in the NSDictionary parameter for initToken:callback: API |
|||
extern NSString * const ASS_USERID; |
|||
|
|||
//初始化API的字典参数中,环境变量的key |
|||
//key for server environment configuration in the NSDictionary parameter for initToken:callback: API |
|||
extern NSString * const ASS_ENVIRONMENT; |
|||
|
|||
//初始化API的字典参数中,环境变量的value,代表线上环境 |
|||
//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for online environment |
|||
extern NSString * const ASS_ENVIRONMENT_ONLINE; |
|||
|
|||
//初始化API的字典参数中,环境变量的value,代表测试环境 |
|||
//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for test environment |
|||
extern NSString * const ASS_ENVIRONMENT_SIT; |
|||
|
|||
//初始化API的字典参数中,环境变量的value,代表开发环境 |
|||
//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for daily environment |
|||
extern NSString * const ASS_ENVIRONMENT_DAILY; |
|||
|
|||
//初始化API的字典参数中,环境变量的value,代表预发环境 |
|||
//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for pre online environment |
|||
extern NSString * const ASS_ENVIRONMENT_PRE; |
|||
|
|||
//初始化API的字典参数中,设置RPC网关地址的key。 |
|||
//key for RPC server gateway address in the NSDictionary parameter for initToken:callback: API. |
|||
//If value for this key is specified, the value for ASS_ENVIRONMENT will be ignored. |
|||
extern NSString* const ASS_RPC_GATEWAY_ADDR; |
|||
|
|||
//rpc header workspaceid key |
|||
extern NSString* const ASS_RPC_WORKSPACEID; |
|||
|
|||
//rpc header appid key |
|||
extern NSString* const ASS_RPC_APPID; |
|||
|
|||
//初始化API的字典参数中,设置UMID网关host地址的key。 |
|||
//host 要设置的线上地址,如ynuf.alipay.com,不要带协议头,不要带后面的参数,只能传纯host地址 |
|||
//key for UMID server host in the NSDictionary parameter for initToken:callback: API. |
|||
//host should only contain online address such as ynuf.alipay.com, without protocol or parameters. |
|||
extern NSString* const ASS_UMID_HOST; |
|||
|
|||
//初始化API的字典参数中,设置加密的umid。 |
|||
extern NSString * const ASS_ENCODE_UMID; |
|||
|
|||
/*! |
|||
@typedef ASSStatusCode |
|||
|
|||
Possible return codes |
|||
@constant ASSStatusCodeOk Completed, No errors |
|||
@constant ASSStatusCodeInvalidParam input param invalid |
|||
@constant ASSStatusCodeAppNameNil appName is nil |
|||
@constant ASSStatusCodeAppKeyNil appKeyClient is nil |
|||
@constant ASSStatusCodeConnectionError network connection failure |
|||
*/ |
|||
typedef NS_ENUM(NSInteger, ASSStatusCode) |
|||
{ |
|||
ASSStatusCodeOk = 0, |
|||
ASSStatusCodeInvalidParam, |
|||
ASSStatusCodeAppNameNil, |
|||
ASSStatusCodeAppKeyNil, |
|||
ASSStatusCodeConnectionError, |
|||
|
|||
}; |
|||
|
|||
typedef NS_ENUM(NSInteger, ASSAddressFlag) |
|||
{ |
|||
ASSAddressFlagIndonesia = 1, |
|||
ASSAddressFlagMalaysia = 2, |
|||
ASSAddressFlagPilipinas = 3, |
|||
ASSAddressFlagSingapore = 4, |
|||
ASSAddressFlagIpayVn = 11, |
|||
ASSAddressFlagIpayId = 12, |
|||
ASSAddressFlagIpayMy = 13, |
|||
ASSAddressFlagIpaySg = 14, |
|||
ASSAddressFlagIpayTh = 15, |
|||
ASSAddressFlagIpayPh = 16, |
|||
ASSAddressFlagIpayDefault = 17, |
|||
}; |
|||
|
|||
@interface APSecureSdk : NSObject |
|||
|
|||
/** |
|||
获取单例 |
|||
*/ |
|||
+ (id)sharedInstance; |
|||
|
|||
/* |
|||
*网关设置 |
|||
*/ |
|||
- (void)setSecuritySDKConfig:(ASSAddressFlag)address; |
|||
|
|||
/** |
|||
初始化 |
|||
*/ |
|||
- (void)initWithRpcConfiguration:(NSDictionary *) config; |
|||
|
|||
//===================测试联调 api====================// |
|||
- (void)setRpcConfiguration:(NSDictionary *) config; |
|||
|
|||
@end |
@ -0,0 +1,56 @@ |
|||
// |
|||
// APSign.h |
|||
// APPSecuritySDK-Sign |
|||
// |
|||
// Created by eric on 2021/2/25. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface APSign : NSObject |
|||
|
|||
/* |
|||
* getColorInfo 请求可信接口,获取数字签名 |
|||
* |
|||
* @param bizToken 业务场景 |
|||
* @param bizParam 业务参数 |
|||
* @param extParams 扩展参数 |
|||
* @param errInfo 错误信息 |
|||
* |
|||
* @return 数字签名数据 |
|||
*/ |
|||
+ (NSString*) getColorInfo: (NSString*) bizToken |
|||
param: (NSString*) bizParam |
|||
ext: (NSDictionary*) extParams |
|||
error: (NSError **) errInfo; |
|||
|
|||
/* |
|||
* preColorInfo 签名数据预处理接口,用于不同业务定制签名携带数据 |
|||
* |
|||
* @param userAction 当前动作,由业务定制的行为事件 |
|||
* @param extParams 业务参数,格式需要与内部对齐 |
|||
* |
|||
* @return 预处理数据 |
|||
*/ |
|||
+ (NSString*) preColorInfo: (int) userAction |
|||
ext: (NSDictionary*) extParams |
|||
error: (NSError **) errInfo; |
|||
|
|||
/* |
|||
* preColorInfo 签名数据预处理接口,用于不同业务定制签名携带数据 |
|||
* |
|||
* @param userAction 当前动作,由业务定制的行为事件 |
|||
* @param extParams 业务参数,格式需要与内部对齐 |
|||
* |
|||
* @return 预处理数据 |
|||
*/ |
|||
+ (NSString*) preColorInfoForString: (int) userAction |
|||
ext: (NSString*) extParams |
|||
error: (NSError **) errInfo; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,234 @@ |
|||
// |
|||
// ASSCommon.h |
|||
// ae-security-sdk |
|||
// |
|||
// Created by xingchen on 14/12/30. |
|||
// Copyright (c) 2014年 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import "ASSLogger.h" |
|||
|
|||
//#define IN_DEBUG |
|||
#define USED_BY_ALIPAY |
|||
|
|||
static NSErrorDomain APSECURITYSDK_ERROR_DOMAIN = @"APSecuritySDKErrorDomain"; |
|||
|
|||
static NSString* const PRIVATE_KEY_XXXX = @"qqAIhzy)H)ip53<>ugx,sI{#}CE$37L|z5G=IScgO^=aQHaN[b|NM.RWdZpcy.r$"; |
|||
|
|||
static NSString* const PRIVATE_KEY_CLIENTKEY = @"EQopzyui)H)ipQW983<ll>uitx,sgI{#}##20110kl==^^woQG,msq.xinjun.$$"; |
|||
|
|||
static NSString* const LOG_SWITCH_SETTING_INITIALIZED = @"开关设置从keychain初始化成功"; |
|||
|
|||
static NSString* const LOG_LOAD_SETTING_EXCEPTION = @"开关设置在keychain中无存储,读取失败"; |
|||
|
|||
static NSString* const LOG_DECRYPT_SETTING_EXCEPTION = @"开关设置从keychain中读取成功,解密失败"; |
|||
|
|||
static NSString* const LOG_SWITCH_APPLIST_INITIALIZED = @"applist从keychain初始化成功"; |
|||
|
|||
static NSString* const LOG_LOAD_APPLIST_EXCEPTION = @"applist相关信息在keychain中无存储,读取失败"; |
|||
|
|||
static NSString* const LOG_DECRYPT_APPLIST_EXCEPTION = @"applist信息从keychain中读取成功,解密失败"; |
|||
|
|||
static NSString* const LOG_UMID_TOKEN_REQUEST_BACK = @"UMID TOKEN返回结果为:"; |
|||
|
|||
static NSString* const LOG_VKEYINFO_GENERATED = @"本地VKEY开关打开,将生成VKEY信息"; |
|||
|
|||
static NSString* const LOG_VKEYINFO_ABORT = @"本地VKEY开关关闭,将放弃生成VKEY信息"; |
|||
|
|||
static NSString* const LOG_VKEY_NO_KEYCHAIN_CACHE = @"VKEY缓存信息在keychain中无存储,读取失败"; |
|||
|
|||
static NSString* const LOG_VKEY_FOUND_KEYCHAIN_CACHE = @"VKEY缓存信息在keychain中获取缓存值"; |
|||
|
|||
static NSString* const LOG_VKEY_INFO_DETAIL = @"KEY信息为:"; |
|||
|
|||
static NSString* const LOG_VKEY_GENERATION_EXCEPTION = @"VEr:"; |
|||
|
|||
static NSString* const LOG_GID_GENERATED = @"本地GID开关打开,将生成GID信息"; |
|||
|
|||
static NSString* const LOG_GID_ABORT = @"本地GID开关关闭,将放弃生成GID信息"; |
|||
|
|||
static NSString* const LOG_GID_NO_KEYCHAIN_CACHE = @"GID缓存信息在keychain中无存储,读取失败"; |
|||
|
|||
static NSString* const LOG_GID_FOUND_KEYCHAIN_CACHE = @"GID缓存信息在keychain中获取缓存值"; |
|||
|
|||
static NSString* const LOG_GID_INFO_DETAIL = @"GID信息为:"; |
|||
|
|||
static NSString* const LOG_VOS_RUNNING = @"VKEY任务启动"; |
|||
|
|||
static NSString* const LOG_VOS_ASYNC_ABORT = @"放弃异步VOS任务"; |
|||
|
|||
static NSString* const LOG_VOS_VKEY_GENERATION = @"VOS VKEY采集中"; |
|||
|
|||
static NSString* const LOG_VOS_GID_GENERATION = @"VOS GID采集中"; |
|||
|
|||
static NSString* const LOG_GID_GENERATION_EXCEPTION = @"GEr:"; |
|||
|
|||
static NSString* const LOG_JB_ERROR_DETECTED = @"JEr"; |
|||
|
|||
static NSString* const LOG_STATIC_INFO_DETAIL = @"采集静态信息列表如下:"; |
|||
|
|||
static NSString* const LOG_APP_LIST_INFO_COLLECTED = @"APPLIST信息扫描获取中"; |
|||
|
|||
static NSString* const LOG_APP_LIST_INFO_ABORT = @"APPLIST信息放弃扫描获取"; |
|||
|
|||
static NSString* const LOG_LOAD_MODEL_KEYCHAIN_EXCEPTION = @"VKEYID在keychain无存储,读取失败"; |
|||
|
|||
static NSString* const LOG_LOAD_MODEL_FROM_KEYCHAIN = @"VKEYID从keychain中成功读取"; |
|||
|
|||
static NSString *const LOG_LOCALMODEL_ABSENT = @"本地未找到VKEYID存储"; |
|||
|
|||
static NSString *const LOG_LOCALMODEL_LOADSUCCESS = @"本地成功找到VKEYID存储"; |
|||
|
|||
static NSString *const LOG_LOAD_PREAPDID_SUCCESS = @"本地成功在keychain中读取旧版apdid的值:"; |
|||
|
|||
static NSString *const LOG_LOAD_PREAPDID_FAILED = @"旧版apdid在keychain中无存储,读取失败"; |
|||
|
|||
static NSString* const LOG_STATIC_INFO_CHANGED = @"所采集的静态信息发生改变或者存储中没有记录"; |
|||
|
|||
static NSString* const LOG_STATIC_INFO_SAME = @"所采集的静态信息与存储中相同"; |
|||
|
|||
static NSString* const LOG_TODAY_FIRST = @"检测为24小时内首次请求"; |
|||
|
|||
static NSString* const LOG_NOT_TODAY_FIRST = @"检测24小时内已经发起过请求"; |
|||
|
|||
static NSString *const LOG_GETAPDIDTOKEN_RET_LOCAL = @"不发起网络请求,直接返回本地存储"; |
|||
|
|||
static NSString* const LOG_CONNECT_TO_SERVER = @"需要访问服务器请求TOKEN"; |
|||
|
|||
static NSString* const LOG_REQUEST_INFO_INCLUDED = @"静态请求上传需要携带静态信息"; |
|||
|
|||
static NSString* const LOG_REQUEST_INFO_EXCLUDED = @"静态请求上传不需要携带静态信息"; |
|||
|
|||
static NSString* const LOG_STATIC_REQUEST_EXCEPTION = @"静态数据请求发送出现异常"; |
|||
|
|||
static NSString* const LOG_STATIC_REQUEST_FAILED = @"静态数据请求返回出现错误"; |
|||
|
|||
static NSString* const LOG_STATIC_REQUEST_SUCCESS = @"静态数据请求请求返回"; |
|||
|
|||
static NSString* const LOG_SERVER_RESPONSE_SUCCESS = @"服务端返回结果通过验证,证明有效:"; |
|||
|
|||
static NSString* const LOG_SERVER_RESPONSE_FAILED = @"服务端获取TOKEN失败"; |
|||
|
|||
static NSString* const LOG_LOG_REQUEST_RESPONSE = @"日志上传成功返回"; |
|||
|
|||
static NSString *const LOG_LOCALMODEL_SAVED_KEYCHAIN = @"成功将VKEY ID保存至keychain"; |
|||
|
|||
static NSString *const LOG_UPDATE_SETTING = @"已更新keychain中开关的设置值"; |
|||
|
|||
static NSString* const LOG_APP_LIST_NEED_UPDATE = @"经过检测,app list列表需要从服务器更新"; |
|||
|
|||
static NSString *const LOG_UPDATE_APPLIST = @"app list列表成功从服务器更新"; |
|||
|
|||
static NSString* const LOG_APPLIST_SETTING_SAVED_KEYCHAIN = @"app list列表信息成功更新至keychain保存"; |
|||
|
|||
static NSString* const LOG_APP_LIST_REQUEST_EXCEPTION = @"app list请求出现异常"; |
|||
|
|||
static NSString* const LOG_APP_LIST_RESPONSE_FAILED = @"app list请求结果失败"; |
|||
|
|||
static NSString* const LOG_LOG_UPDATE_EXCEPTION = @"日志信息请求发送出现异常"; |
|||
|
|||
static NSString* const LOG_LOG_UPLOAD_ERROR = @"日志信息发送出现错误"; |
|||
|
|||
static NSString* const LOG_LOG_UPLOAD_SUCCESS = @"日志信息发送返回成功"; |
|||
|
|||
static NSString *const LOG_SETTINGMODEL_SAVEFAILED = @"开关信息保存错误"; |
|||
|
|||
static NSString *const LOG_SETTINGMODEL_SUCCESS = @"开关信息成功保存到keychain"; |
|||
|
|||
static NSString* const LOG_LOG_UPLOAD_PROCESS = @"上报日志开关打开,开始上报错误日志流程"; |
|||
|
|||
static NSString* const LOG_LOG_UPLOAD_ABORT = @"上报日志开关关闭,放弃上报错误日志"; |
|||
|
|||
static NSString* const LOG_LOG_FILE_DETAIL = @"检测到错误日志文件:"; |
|||
|
|||
static NSString* const LOG_LOG_FILE_REMOVAL = @"已经删除错误日志文件:"; |
|||
|
|||
static NSString* const LOG_LOG_UPLOAD_START = @"开始日志上报网络请求"; |
|||
|
|||
static NSString* const LOG_LOG_UPLOAD_DETAIL = @"日志上报网络请求具体内容:"; |
|||
|
|||
|
|||
|
|||
static NSString* const LOG_JSON_PARSE_EXCEPTION = @"JSON解析失败"; |
|||
|
|||
static NSString* const ASS_STORAGE_KEY_SUCCESS = @"success"; |
|||
static NSString* const ASS_STORAGE_KEY_APDID = @"apdid"; |
|||
static NSString* const ASS_STORAGE_KEY_TOKEN = @"token"; |
|||
static NSString* const ASS_STORAGE_KEY_TIME = @"time"; |
|||
static NSString* const ASS_STORAGE_KEY_VKEYSWITCH = @"vkeyon"; |
|||
static NSString* const ASS_STORAGE_KEY_LOGSWITCH = @"logon"; |
|||
static NSString* const ASS_STORAGE_KEY_APPLISTVERSION = @"appver"; |
|||
static NSString* const ASS_STORAGE_KEY_STATICHASH = @"statichash"; |
|||
static NSString* const ASS_STORAGE_KEY_ERROR = @"error"; |
|||
static NSString* const ASS_APPKEY_INVALID = @"APPKEY_ERROR"; |
|||
static NSString* const ASS_STORAGE_KEY_WEBRTCURL = @"webrtcurl"; |
|||
static NSString* const ASS_STORAGE_KEY_DYNAMICKEY = @"dynamickey"; |
|||
static NSString* const ASS_STORAGE_KEY_AGENTURL = @"agentcurl"; |
|||
static NSString* const ASS_STORAGE_KEY_APSE_DEGRADE = @"apse_degrade"; |
|||
static NSString* const ASS_STORAGE_KEY_TIMEINTERVAL = @"timeInterval"; |
|||
|
|||
static NSString* const SECURE_SDK_KEYCHAIN_KEY = @"com.alipay.securesdk.storage"; |
|||
static NSString* const LAST_LOGIN_TIME_KEY = @"com.alipay.asssecuritySDK.lastlogintime"; |
|||
static NSString* const SECURE_SDK_RANDOM_STRING = @"com.alipay.securesdk.ranstr"; |
|||
static NSString* const SECURE_SDK_RANDOM_TOKEN = @"com.alipay.securesdk.tokenid"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_SETTING = @"com.alipay.asssecuresdk.config"; |
|||
static NSString* const SECURE_SDK_RANDOM_CLIENTKEY_STRING = @"com.alipay.securesdk.clientkey"; |
|||
static NSString* const SECURE_SDK_KEYCHAIN_TOKEN = @"maintoken"; |
|||
|
|||
static NSString* const ASS_KEYCHAIN_KEY_APPLIST = @"com.alipay.asssecuresdk.list"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_DFP = @"com.alipay.asssecuresdk.dfp"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_GID = @"com.alipay.asssecuresdk.gid"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_JBER = @"com.alipay.asssecuresdk.jber"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_APDIDC = @"com.alipay.asssecuresdk.apdidc"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_TMXTIME = @"com.alipay.asssecuresdk.tmxtime"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_TMXSESSOINID = @"com.alipay.asssecuresdk.tmxsessionid"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_ARPMAC = @"com.alipay.asssecuresdk.arpmac"; |
|||
static NSString* const ASS_KEYCHAIN_KEY_DYNAMICKEY = @"com.alipay.asssecuresdk.dynamickey"; |
|||
|
|||
static NSString* const ASS_USER_DEFAULT_KEY_DEGRADE_TIME = @"asssecuritysdkdegrade"; |
|||
|
|||
static const int overtime = 9; |
|||
|
|||
//CRASHGUARD |
|||
static NSString* const CRASH_GUARD_GET_COLOR_INFO = @"05f445"; |
|||
static NSString* const CRASH_GUARD_PRE_COLOR_INFO = @"f379d2"; |
|||
static NSString* const CRASH_GUARD_INIT_COLOR_INFO = @"25f523"; |
|||
static NSString* const CRASH_GUARD_UPDATE_COLOR_CODE = @"8e81ac"; |
|||
static NSString* const CRASH_GUARD_GET_COLOR_LABEL = @"d785d8"; |
|||
static NSString* const CRASH_GUARD_UPDATE_COLOR_LABEL = @"dccf1d"; |
|||
static NSString* const CRASH_GUARD_INIT_TOKEN = @"0780aa"; |
|||
static NSString* const CRASH_GUARD_INIT = @"e37f013"; |
|||
|
|||
|
|||
@interface ASSCommon : NSObject |
|||
|
|||
+ (int)getCurrentMode; |
|||
|
|||
+ (NSString*)getRPCURL; |
|||
|
|||
+ (NSString*)getServerHost; |
|||
|
|||
+ (void) setRPCHeader:(NSDictionary*)header; |
|||
|
|||
+ (NSDictionary*)getRPCHeader; |
|||
|
|||
+ (void)setupEnvironmentMode:(int)mode; |
|||
|
|||
+ (void)setupRPCAddress:(NSString*)address; |
|||
|
|||
+ (BOOL)useURLWhitelist; |
|||
|
|||
+ (BOOL)checkDeviceSystemVersion; |
|||
|
|||
+ (void)setSecuritySDKConfig:(int)address; |
|||
|
|||
+ (void)setRpcHeaderAppid:(NSString*)apid; |
|||
|
|||
+ (NSString*)getRpcHeaderAppid; |
|||
|
|||
+ (void)setRpcHeaderWorkspaceid:(NSString*)spaceid; |
|||
|
|||
+ (NSString*)getRpcHeaderWorkspaceid; |
|||
|
|||
@end |
@ -0,0 +1,37 @@ |
|||
// |
|||
// ASSDynamicManager.h |
|||
// APSecSecuritySDK |
|||
// |
|||
// Created by msq on 2019/1/5. |
|||
// Copyright © 2019 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import "APDynamicProtocol.h" |
|||
|
|||
@interface ASSDynamicManager : NSObject<APDynamicProtocol> |
|||
|
|||
+ (instancetype)sharedInstance; |
|||
|
|||
- (void)dynamicCheckDispatch:(NSDictionary *)dict; |
|||
|
|||
- (void)dynamicCheckDispatch:(NSDictionary *)dict withCallBack: (void(^)(Boolean, NSString *))callback; |
|||
|
|||
- (void)dynamicCheckCustomLocal:(int)delay; |
|||
|
|||
+ (NSData *)sendDynamicSynchronousRequest:(NSString *)url; |
|||
|
|||
+ (void)uploadTimerCheckResult:(NSString *)data |
|||
dynamicTrace:(NSString*)trace |
|||
dynamicCmd:(int)cmd |
|||
dynamicNum:(int)num; |
|||
|
|||
+ (NSString *)uploadCustomFile:(NSString *)path; |
|||
|
|||
+ (void)recordError:(const char *)pos |
|||
withAction:(const char *)action |
|||
errCode:(int)code; |
|||
|
|||
//+ (NSString *)processFeature; |
|||
|
|||
@end |
@ -0,0 +1,39 @@ |
|||
// |
|||
// ASSLogger.h |
|||
// ae-security-sdk |
|||
// |
|||
// Created by xingchen on 14/12/22. |
|||
// Copyright (c) 2014年 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import "ASSProtocolCenter.h" |
|||
|
|||
#define ASSLog(...) do { \ |
|||
if ([ASSProtocolCenter sharedCenter].logDelegate) { \ |
|||
[[ASSProtocolCenter sharedCenter].logDelegate print:__VA_ARGS__, nil]; \ |
|||
}} while(0) |
|||
#define ASSDtl(params, detail) [[ASSProtocolCenter sharedCenter].logDelegate print:[NSString stringWithFormat:@"%@%@",params,detail], nil] |
|||
#define ASSLogError(erroInfo) do { [[ASSLogger sharedInstance] addLogWithMessage: erroInfo]; } while(0) |
|||
|
|||
@interface ASSLogger : NSObject |
|||
|
|||
@property (nonatomic, strong) NSString* loggerInfo; |
|||
|
|||
+(id)sharedInstance; |
|||
|
|||
-(void)initializeWithArgs:(NSDictionary*)inArgs; |
|||
|
|||
-(void)addLogWithMessage:(NSString*)message; |
|||
|
|||
-(void)uploadLog; |
|||
|
|||
//---------for test |
|||
-(NSData*)generateMessage:(NSString*)msg; |
|||
-(void)addLogWithMessage:(NSString *)message withFileName:(NSString*)fileName; |
|||
-(NSString*)getCurrentFileName:(NSDate*)date; |
|||
-(void)internal_addLog:(NSString*)message; |
|||
-(void)uploadLogCertified; |
|||
|
|||
|
|||
@end |
@ -0,0 +1,28 @@ |
|||
// |
|||
// ASSSecureInfo.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by msq on 2018/7/9. |
|||
// Copyright © 2018年 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
#define ASSSecureInfo ASSSecureInfoCore |
|||
|
|||
@interface ASSSecureInfo : NSObject |
|||
/** |
|||
* 重打包检测 |
|||
* 返回值:YES表示个人签名;NO表示企业签名 |
|||
* |
|||
*/ |
|||
+ (BOOL)hasPersonSign; |
|||
|
|||
/** |
|||
* 越狱检测 |
|||
* 返回值:0表示非越狱;大于0其他值表示越狱 |
|||
* |
|||
*/ |
|||
+ (uint32_t)checkJB; |
|||
|
|||
@end |
@ -0,0 +1,77 @@ |
|||
// |
|||
// ASSSecureOpenSdk.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by msq on 16/6/1. |
|||
// Copyright © 2016年 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import "APSecureSdk.h" |
|||
#import "ASSTokenResult.h" |
|||
|
|||
typedef void(^ASSSecureSdkCallbackOpen)(NSString* token, int errorCode); |
|||
|
|||
@interface ASSSecureOpenSdk : NSObject |
|||
|
|||
/* |
|||
异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求 |
|||
@param appName 应用名称 |
|||
@param appKeyClient 应用客户端密钥 |
|||
@param callback 初始化完成后的结果回调,以Token作为参数 |
|||
*/ |
|||
+ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient callback:(ASSSecureSdkCallbackOpen)callback; |
|||
|
|||
|
|||
/* |
|||
异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求 |
|||
@param appName 应用名称 |
|||
@param appKeyClient 应用客户端密钥 |
|||
@param parameters 业务方按约定的自定义参数 |
|||
@param callback 初始化完成后的结果回调,以Token作为参数 |
|||
*/ |
|||
+ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient parameters:(NSDictionary*)inArgs callback:(ASSSecureSdkCallbackOpen)callback; |
|||
|
|||
/* |
|||
异步强制更新vkeyid,推荐在app启动时和收银台页面加载时调用,无线程要求 |
|||
@param appName 应用名称 |
|||
@param appKeyClient 应用客户端密钥 |
|||
@param parameters 业务方按约定的自定义参数 |
|||
@param callback 初始化完成后的结果回调,以Token作为参数 |
|||
*/ |
|||
+ (void)updateToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient parameters:(NSDictionary*)inArgs callback:(ASSSecureSdkCallbackOpen)callback; |
|||
|
|||
/* |
|||
VKEYID和VKEYID token的接口,无网络请求。 |
|||
同步调用前应当先调用过异步初始化接口 |
|||
|
|||
如果异步初始化由于网络等原因失败,同步接口将返回降级方案: |
|||
1)VKEYID将在旧版apdid存在的情况下返回旧版apdid,否则返回随机串 |
|||
2)VKEYID token将返回空字符串:@"" |
|||
*/ |
|||
+ (ASSTokenResultOpen*)getTokenResult; |
|||
|
|||
/* |
|||
*获取exactID |
|||
*/ |
|||
+ (NSString*)getExactID; |
|||
|
|||
/* |
|||
*设置自定义的网关地址 |
|||
*/ |
|||
+ (void)setGatewayAddress:(NSString*)addr; |
|||
|
|||
+ (void)setRpcConfiguration:(NSDictionary *) config; |
|||
|
|||
|
|||
/** |
|||
* 感知埋点。 |
|||
* appName - 应用名 (智科人脸:“zorro”) |
|||
* appKeyClient - 应用key (智科人脸:“elBwppCSr9nB1LIQ”) |
|||
* action - 感知行为编号 |
|||
* extParams - 可选扩展参数,以map方式传参 |
|||
*/ |
|||
//+(APRiskResult*)APPerceptRisk:(NSString*)appName appKeyClient:(NSString*)appKeyClient userAction:(NSInteger)action extParams:(NSDictionary *)args; |
|||
|
|||
|
|||
@end |
@ -0,0 +1,29 @@ |
|||
// |
|||
// ASSSgomInfoOpen.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by hongren on 2021/8/16. |
|||
// Copyright © 2021 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
/** |
|||
* 感知结果类。 |
|||
*/ |
|||
@interface ASSSgomResult: NSObject |
|||
|
|||
@property (nonatomic) NSInteger resCode; |
|||
@property (nonatomic, strong) NSString* resInfo; |
|||
|
|||
@end |
|||
|
|||
|
|||
@interface ASSSgomInfoOpen : NSObject |
|||
|
|||
+ (instancetype)sharedInstance; |
|||
|
|||
- (ASSSgomResult*)updateSgomInfo:(int) userAction |
|||
ext:(NSDictionary*) extParams; |
|||
|
|||
@end |
@ -0,0 +1,40 @@ |
|||
// |
|||
// ASSTokenResult.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by xingchen on 15/7/31. |
|||
// Copyright (c) 2015年 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
#define ASSTokenResult ASSTokenResultCore |
|||
|
|||
|
|||
@interface ASSTokenResult : NSObject |
|||
|
|||
@property (nonatomic, strong) NSString* vkeyidToken; |
|||
@property (nonatomic, strong) NSString* clientKey; |
|||
@property (nonatomic, strong) NSString* umidToken; |
|||
@property (nonatomic, strong) NSString* vkeyid; |
|||
|
|||
@end |
|||
|
|||
|
|||
@interface ASSTokenResultOpen: NSObject |
|||
|
|||
@property (nonatomic, strong) NSString* vkeyidToken; |
|||
@property (nonatomic, strong) NSString* clientKey; |
|||
@property (nonatomic, strong) NSString* vkeyid; |
|||
|
|||
@end |
|||
|
|||
/** |
|||
* 感知结果类。 |
|||
*/ |
|||
@interface APRiskResult: NSObject |
|||
|
|||
@property (nonatomic) int resCode; |
|||
@property (nonatomic, strong) NSString* resInfo; |
|||
|
|||
@end |
@ -0,0 +1,101 @@ |
|||
// |
|||
// AntSecurityManager.h |
|||
// APPSecuritySDK |
|||
// |
|||
// Created by msq on 2018/8/20. |
|||
// Copyright © 2018年 Alipay. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
typedef enum: NSInteger { |
|||
//正常 |
|||
SEC_STORE_OK = 0, |
|||
//未找到 |
|||
SEC_STORE_NOT_FOUND = 10001, |
|||
//拷贝 |
|||
SEC_STORE_CP = 10002, |
|||
//内部错误 |
|||
SEC_STORE_ERR = 10003, |
|||
|
|||
SEC_STORE_PARAM_ERR = 10004, |
|||
|
|||
SEC_STORE_DEGRADE_ERR = 10005, |
|||
|
|||
} SEC_STORE_ERR_CODE; |
|||
|
|||
@interface APSecStoreResult : NSObject |
|||
|
|||
@property (nonatomic, strong) NSString* value; |
|||
|
|||
@property (nonatomic, assign) SEC_STORE_ERR_CODE errCode; |
|||
|
|||
@property (nonatomic, assign) int errCodeDetail; |
|||
|
|||
@end |
|||
|
|||
@interface AntSecurityManager : NSObject |
|||
|
|||
/** |
|||
* brief aes_encrypt |
|||
* ase 加密 |
|||
* param data 原始数据 |
|||
* |
|||
* return |
|||
* 返回加密后数据 |
|||
* nil 表示异常 |
|||
*/ |
|||
+ (NSString*)securityEncrypt:(NSString*)data; |
|||
|
|||
/** |
|||
* brief aes_decrypt |
|||
* ase 解密 |
|||
* param data 加密原始数据 |
|||
* |
|||
* return |
|||
* 返回解密后数据 |
|||
* nil 表示异常 |
|||
*/ |
|||
+ (NSString*)securityDecrypt:(NSString*)data; |
|||
|
|||
/** |
|||
* brief wbSign |
|||
* |
|||
* param data 签名数据 |
|||
* |
|||
* return |
|||
* 签名数据 44B base64文本 |
|||
*/ |
|||
+ (NSString*)wbSign:(NSString*)data; |
|||
|
|||
/** |
|||
*防拷贝存储保存数据接口 |
|||
*@param key |
|||
*@param value 需要加密的数据 |
|||
*@param bizType 业务场景 |
|||
*@return 返回错误码,0表示正常,其他非0值都表示异常 |
|||
*/ |
|||
|
|||
+ (int) setSafeStore:(NSString*)key value:(NSString*)value bizType:(NSString*)bizType; |
|||
|
|||
/** |
|||
*防拷贝存储读取数据接口 |
|||
*@param key |
|||
*@param bizType 业务场景 |
|||
*@return 返回APSecStoreResult对象 |
|||
* SEC_STORE_OK 0 正常 |
|||
* SEC_STORE_NOT_FOUND 10001 未找到 |
|||
* SEC_STORE_CP 10002 拷贝 |
|||
* SEC_STORE_ERR 10003 内部错误 |
|||
*/ |
|||
+ (APSecStoreResult*)getSafeStore:(NSString*)key bizType:(NSString*)bizType; |
|||
|
|||
/** |
|||
*删除保存数据接口 |
|||
*@param key |
|||
*@param bizType 业务场景 |
|||
*@return 返回错误码,0表示正常,其他非0值都表示异常 |
|||
*/ |
|||
+ (int) deleteSafeStore:(NSString*)key bizType:(NSString*)bizType; |
|||
|
|||
@end |
@ -0,0 +1,559 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
|||
<plist version="1.0"> |
|||
<dict> |
|||
<key>files</key> |
|||
<dict> |
|||
<key>APPSecuritySDK-Info.plist</key> |
|||
<data> |
|||
Po//BA5tM1BE58borc33LNpqXyw= |
|||
</data> |
|||
<key>Headers/APDID.h</key> |
|||
<data> |
|||
YaNffM20hdQMiNpnIoEPIHF8o+A= |
|||
</data> |
|||
<key>Headers/APDeviceColor.h</key> |
|||
<data> |
|||
sqZwHJLZ8j2L+9pkCmTqWHaRPoo= |
|||
</data> |
|||
<key>Headers/APDynamic.h</key> |
|||
<data> |
|||
TBp9H7ZpcLh5hWGFJbObSnR3sSQ= |
|||
</data> |
|||
<key>Headers/APRiskConfigReportRequest.h</key> |
|||
<data> |
|||
5vPyFFL4v0DrNrSc35DrU0204M4= |
|||
</data> |
|||
<key>Headers/APRiskConfigReportResponse.h</key> |
|||
<data> |
|||
WODwFqptygg++OMfRxg5nJhV1tM= |
|||
</data> |
|||
<key>Headers/APRiskConfigServiceProtocol.h</key> |
|||
<data> |
|||
SJJczKTD81Beaeutnk5eh5yYk6s= |
|||
</data> |
|||
<key>Headers/APRiskFileUploadProtocol.h</key> |
|||
<data> |
|||
LLqKfgEm/gVHeBO+chBoA32ce6w= |
|||
</data> |
|||
<key>Headers/APRiskLoggerProtocol.h</key> |
|||
<data> |
|||
KaoFaIX0tcWToF7p3GQSPdm1fNI= |
|||
</data> |
|||
<key>Headers/APRiskRPCProtocol.h</key> |
|||
<data> |
|||
/OdHTVHBuEGxpO5dJbde5mXoV3Q= |
|||
</data> |
|||
<key>Headers/APRiskRemoteLoggerProtocol.h</key> |
|||
<data> |
|||
L9Ca3T+cAEzjRZxJTwHTaKytgQs= |
|||
</data> |
|||
<key>Headers/APRiskReportRequest.h</key> |
|||
<data> |
|||
p0bXoJMwS+46ZRrgLqdvbEFjAmI= |
|||
</data> |
|||
<key>Headers/APRiskReportResponse.h</key> |
|||
<data> |
|||
3pzJU3RgAQBnPg/R2tEjuGJLfvc= |
|||
</data> |
|||
<key>Headers/APRiskRpcConfiguration.h</key> |
|||
<data> |
|||
ypma2woz2iRq5pghoIkfFTGVm+8= |
|||
</data> |
|||
<key>Headers/APRiskSyncHandlerProtocol.h</key> |
|||
<data> |
|||
Vum7s9ObS3JRBHwQBG4BUdk6SN8= |
|||
</data> |
|||
<key>Headers/APRiskSyncServiceProtocol.h</key> |
|||
<data> |
|||
V0kCGcKZFd1gG+a2uuDzVkzj218= |
|||
</data> |
|||
<key>Headers/APSecRDS.h</key> |
|||
<data> |
|||
ZKM/B2Jcl/et+wyK8FepeewKCi8= |
|||
</data> |
|||
<key>Headers/APSecStore.h</key> |
|||
<data> |
|||
rEuJJetfP9Aj7GLQd5R3IgSZw/c= |
|||
</data> |
|||
<key>Headers/APSecureSdk.h</key> |
|||
<data> |
|||
ywtAfrae7i2g9jT6cXJt775tdng= |
|||
</data> |
|||
<key>Headers/APSign.h</key> |
|||
<data> |
|||
r5sKoLYWS4dLLlNO9xAcWNGi6Cw= |
|||
</data> |
|||
<key>Headers/ASSCommon.h</key> |
|||
<data> |
|||
lrrlG7ZqNaz4ciXX/i5kj/NnG3A= |
|||
</data> |
|||
<key>Headers/ASSDynamicManager.h</key> |
|||
<data> |
|||
4Vk+CxCMPtR9isbOl7FqtE5jZuo= |
|||
</data> |
|||
<key>Headers/ASSLogger.h</key> |
|||
<data> |
|||
WvM9Fp3B5ZaI8D+rnHiUcBTxsdk= |
|||
</data> |
|||
<key>Headers/ASSSecureInfo.h</key> |
|||
<data> |
|||
C7uQ4VE5uwtF5ws1blMIKLKpfmI= |
|||
</data> |
|||
<key>Headers/ASSSecureOpenSdk.h</key> |
|||
<data> |
|||
KmdnMxfQN0cqG23Vuu092URfYCs= |
|||
</data> |
|||
<key>Headers/ASSSgomInfoOpen.h</key> |
|||
<data> |
|||
/AhECuNKFdWPVi1Q6oH8rMN66XM= |
|||
</data> |
|||
<key>Headers/ASSTokenResult.h</key> |
|||
<data> |
|||
X5xdpK/2lE52tWoVFEg/ZivE9UQ= |
|||
</data> |
|||
<key>Headers/AntSecurityManager.h</key> |
|||
<data> |
|||
w5tB5gEPNoVoucc6rkAlUnUhzV4= |
|||
</data> |
|||
<key>Info.plist</key> |
|||
<data> |
|||
w68x5O87CK8wNmDyUsqdFJZmyIM= |
|||
</data> |
|||
<key>en.lproj/InfoPlist.strings</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
zmV6UqBSo6r1NOz798vd5O4zTBA= |
|||
</data> |
|||
<key>optional</key> |
|||
<true/> |
|||
</dict> |
|||
<key>module.map</key> |
|||
<data> |
|||
nJxa72k41Z2wyhSJqqJgUyYvSgA= |
|||
</data> |
|||
</dict> |
|||
<key>files2</key> |
|||
<dict> |
|||
<key>APPSecuritySDK-Info.plist</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
Po//BA5tM1BE58borc33LNpqXyw= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
B2XyqSNoreUIQ8uDojzpys2o9qi8XuLbypPrkCR+l8w= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APDID.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
YaNffM20hdQMiNpnIoEPIHF8o+A= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
0nNHe4UB7qz6XFIk/QzRt79MyXYVEOukTfqa3YBJYbY= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APDeviceColor.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
sqZwHJLZ8j2L+9pkCmTqWHaRPoo= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
c/mo/+N/KECjwx+fLMepqE+OqRtyfnn2hHshYhmO9IU= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APDynamic.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
TBp9H7ZpcLh5hWGFJbObSnR3sSQ= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
tUrg2Z43qGA67I0mIGCqRWU6Gc2I9Yx9mn5e2mu9XQU= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskConfigReportRequest.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
5vPyFFL4v0DrNrSc35DrU0204M4= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
OMGRtuphIpujn+dr+tCsCMIUw+KV8WQ2zE+bsdDUVCw= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskConfigReportResponse.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
WODwFqptygg++OMfRxg5nJhV1tM= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
NvTd6RhL7dbwHKHDPiqBqkIc9aWUQLV5SwFFsEorcqg= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskConfigServiceProtocol.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
SJJczKTD81Beaeutnk5eh5yYk6s= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
RyMjAfHvdfRW5n+MDPHVlPZ6VM0Kr/T2A133j9ytwDQ= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskFileUploadProtocol.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
LLqKfgEm/gVHeBO+chBoA32ce6w= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
b2wnReDRJkaR7JxbLjLQXdNsfQbd29tkXtSh/5sjuGo= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskLoggerProtocol.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
KaoFaIX0tcWToF7p3GQSPdm1fNI= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
k2gnCevVtGYZ1cgzxh9FrAlnVnnDzD/3l8lIuDPVuDc= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskRPCProtocol.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
/OdHTVHBuEGxpO5dJbde5mXoV3Q= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
1v7HTHTTRf+k61+lf5L1URwSh/MFv72gdnHxTodGrJA= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskRemoteLoggerProtocol.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
L9Ca3T+cAEzjRZxJTwHTaKytgQs= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
BmYD66C5squNiQNaLya1JrWDDCJ9V8w6C+AVGpr8QF4= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskReportRequest.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
p0bXoJMwS+46ZRrgLqdvbEFjAmI= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
XH1Y2gtlfBaBoOANsxALY7w6fBn81SMhxHKHNVbEFcQ= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskReportResponse.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
3pzJU3RgAQBnPg/R2tEjuGJLfvc= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
PAxPqKwwsKVZNGSWI01WquBx9DZcg0tTsnYe8/UwlAM= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskRpcConfiguration.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
ypma2woz2iRq5pghoIkfFTGVm+8= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
xucoo82E5P13oVpu65VVAqbLK11kcVmtbwRCVlEQI5E= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskSyncHandlerProtocol.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
Vum7s9ObS3JRBHwQBG4BUdk6SN8= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
4wA6oLvZ4U8u4Ff5SSuprJISDBd1X+Zx5MqlV0aGoik= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APRiskSyncServiceProtocol.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
V0kCGcKZFd1gG+a2uuDzVkzj218= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
oSMsgkxXfg8rdX0ZWmUqRmlTF1fgLfINWgGqYcBeMfI= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APSecRDS.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
ZKM/B2Jcl/et+wyK8FepeewKCi8= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
N3/Ych+ScRXiaFWFlsCWXqyGbWdqHhBCHpyp0sQFYPc= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APSecStore.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
rEuJJetfP9Aj7GLQd5R3IgSZw/c= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
R7UHcZTpvTV6HWYJm1bEji6L2ry1wSoCprSTRHEqP0M= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APSecureSdk.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
ywtAfrae7i2g9jT6cXJt775tdng= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
S8aripi9OWRTxz5CBuWeYoSqMhcgLX2GUUT5Ihnwd8o= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/APSign.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
r5sKoLYWS4dLLlNO9xAcWNGi6Cw= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
b7PZT7wIWrHy7znjbbaE/GJMi8zaIla0fduXvyeUNHE= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/ASSCommon.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
lrrlG7ZqNaz4ciXX/i5kj/NnG3A= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
adc/BhjRDcEbnGdNnfGBsTu2jTNZbT2Csi+oHGqx2oY= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/ASSDynamicManager.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
4Vk+CxCMPtR9isbOl7FqtE5jZuo= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
lMtcIcfdivy04/miLJ4swfqpcY6/+5XYbnQMhMiToRw= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/ASSLogger.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
WvM9Fp3B5ZaI8D+rnHiUcBTxsdk= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
JNJIdG9385MDYXjB+F1Mj1NXHTx8faIKEft1KjkceeI= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/ASSSecureInfo.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
C7uQ4VE5uwtF5ws1blMIKLKpfmI= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
VS1+TQV7GpG7Z2dfhSkfmGi3KjE6cGBUxof1/s+bLPo= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/ASSSecureOpenSdk.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
KmdnMxfQN0cqG23Vuu092URfYCs= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
Xq/bbsjzFy4rMCr4osH17Nif1NZQqxmWKvgRHq4THr0= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/ASSSgomInfoOpen.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
/AhECuNKFdWPVi1Q6oH8rMN66XM= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
j8Lnl+QqgD+rwdHhl7yEh7Op76XuicUYflL4/LNrFXE= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/ASSTokenResult.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
X5xdpK/2lE52tWoVFEg/ZivE9UQ= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
7O9oGJk95fMdxJyn2mOlI1Iqe1vPcmPRvP5Rgj8J9zk= |
|||
</data> |
|||
</dict> |
|||
<key>Headers/AntSecurityManager.h</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
w5tB5gEPNoVoucc6rkAlUnUhzV4= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
5QS2NUN5NsRJ5dYsLrHlgLY/GLXNwZDSsR5gN4lin6k= |
|||
</data> |
|||
</dict> |
|||
<key>en.lproj/InfoPlist.strings</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
zmV6UqBSo6r1NOz798vd5O4zTBA= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
kmHsztpgjvF0JW5f3HdMHm49z1M0CcG8OT1JDQHHE/E= |
|||
</data> |
|||
<key>optional</key> |
|||
<true/> |
|||
</dict> |
|||
<key>module.map</key> |
|||
<dict> |
|||
<key>hash</key> |
|||
<data> |
|||
nJxa72k41Z2wyhSJqqJgUyYvSgA= |
|||
</data> |
|||
<key>hash2</key> |
|||
<data> |
|||
XRW9liRaYf8O2c1bSPVShfimQ3Yfcd1SbIKvIE+sv7c= |
|||
</data> |
|||
</dict> |
|||
</dict> |
|||
<key>rules</key> |
|||
<dict> |
|||
<key>^.*</key> |
|||
<true/> |
|||
<key>^.*\.lproj/</key> |
|||
<dict> |
|||
<key>optional</key> |
|||
<true/> |
|||
<key>weight</key> |
|||
<real>1000</real> |
|||
</dict> |
|||
<key>^.*\.lproj/locversion.plist$</key> |
|||
<dict> |
|||
<key>omit</key> |
|||
<true/> |
|||
<key>weight</key> |
|||
<real>1100</real> |
|||
</dict> |
|||
<key>^Base\.lproj/</key> |
|||
<dict> |
|||
<key>weight</key> |
|||
<real>1010</real> |
|||
</dict> |
|||
<key>^version.plist$</key> |
|||
<true/> |
|||
</dict> |
|||
<key>rules2</key> |
|||
<dict> |
|||
<key>.*\.dSYM($|/)</key> |
|||
<dict> |
|||
<key>weight</key> |
|||
<real>11</real> |
|||
</dict> |
|||
<key>^(.*/)?\.DS_Store$</key> |
|||
<dict> |
|||
<key>omit</key> |
|||
<true/> |
|||
<key>weight</key> |
|||
<real>2000</real> |
|||
</dict> |
|||
<key>^.*</key> |
|||
<true/> |
|||
<key>^.*\.lproj/</key> |
|||
<dict> |
|||
<key>optional</key> |
|||
<true/> |
|||
<key>weight</key> |
|||
<real>1000</real> |
|||
</dict> |
|||
<key>^.*\.lproj/locversion.plist$</key> |
|||
<dict> |
|||
<key>omit</key> |
|||
<true/> |
|||
<key>weight</key> |
|||
<real>1100</real> |
|||
</dict> |
|||
<key>^Base\.lproj/</key> |
|||
<dict> |
|||
<key>weight</key> |
|||
<real>1010</real> |
|||
</dict> |
|||
<key>^Info\.plist$</key> |
|||
<dict> |
|||
<key>omit</key> |
|||
<true/> |
|||
<key>weight</key> |
|||
<real>20</real> |
|||
</dict> |
|||
<key>^PkgInfo$</key> |
|||
<dict> |
|||
<key>omit</key> |
|||
<true/> |
|||
<key>weight</key> |
|||
<real>20</real> |
|||
</dict> |
|||
<key>^embedded\.provisionprofile$</key> |
|||
<dict> |
|||
<key>weight</key> |
|||
<real>20</real> |
|||
</dict> |
|||
<key>^version\.plist$</key> |
|||
<dict> |
|||
<key>weight</key> |
|||
<real>20</real> |
|||
</dict> |
|||
</dict> |
|||
</dict> |
|||
</plist> |
@ -0,0 +1,9 @@ |
|||
module APPSecuritySDK { |
|||
header "Headers/APSecureSdk.h" |
|||
header "Headers/APDID.h" |
|||
header "Headers/APDeviceColor.h" |
|||
header "Headers/APSign.h" |
|||
header "Headers/APDynamic.h" |
|||
header "Headers/ASSTokenResult.h" |
|||
export * |
|||
} |
@ -0,0 +1,44 @@ |
|||
// |
|||
// AliyunFaaceAuthFacade.h |
|||
// AliyunFaceAuthFacade |
|||
// |
|||
// Created by 汪澌哲 on 2022/11/21. |
|||
// Copyright © 2022 DTF. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
#import <DTFUtility/ZIMResponse.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface AliyunFaceAuthFacade : NSObject |
|||
|
|||
+ (void)init; |
|||
|
|||
+ (void)initSDK; |
|||
|
|||
/* IPV6的初始化接口 只有你的网络环境强制要求是IPV6的时候,才调用initIPv6。 |
|||
*/ |
|||
+ (void)initIPv6; |
|||
|
|||
+ (NSString *)getVersion; |
|||
|
|||
+ (NSString *)getNFCVersion; |
|||
|
|||
+ (void)preload:(NSDictionary *)param completion:(void (^)(BOOL success))completion; |
|||
|
|||
+ (NSDictionary *)getMetaInfo; |
|||
|
|||
+ (NSDictionary *)getNFCMetaInfo; |
|||
|
|||
+ (void)verifyWith:(NSString *)zimId |
|||
extParams:(NSDictionary *)params |
|||
onCompletion:(void (^)(ZIMResponse *response))callback; |
|||
|
|||
+ (void)nfcVerifyWith:(NSString *)zimId |
|||
extParams:(NSDictionary *)params |
|||
onCompletion:(void (^)(ZIMResponse *response))callback; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
@ -0,0 +1,28 @@ |
|||
// |
|||
// PoPGatewayNetwork.h |
|||
// ZimDemo |
|||
// |
|||
// Created by sanyuan.he on 2020/1/20. |
|||
// Copyright © 2020 com.. All rights reserved. |
|||
// |
|||
|
|||
#import <Foundation/Foundation.h> |
|||
|
|||
NS_ASSUME_NONNULL_BEGIN |
|||
|
|||
@interface PoPGatewayNetwork : NSObject |
|||
|
|||
-(void)bizSendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock; |
|||
|
|||
-(void)verifySendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock; |
|||
|
|||
|
|||
-(void)sendInitFaceVerifyContent:(NSDictionary*)serviceParameters keyName:(NSString*)name initKey:(NSString *)initKey initSimpleValue:(NSString *)initSimpleValue completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock; |
|||
|
|||
-(void)sendOCRContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock; |
|||
|
|||
-(void)sendLogContent:(NSDictionary*)serviceParameters extraHeader:(NSDictionary *)header completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock; |
|||
|
|||
@end |
|||
|
|||
NS_ASSUME_NONNULL_END |
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue