@hmscore/hms-js-safetydetect
v5.2.0-300
Published
HMS JS SafetyDetect
Downloads
3
Maintainers
Readme
JSB SafetyDetect
Contents
- 1. Introduction
- 2. Installation Guide
- 3. API Reference
- 4. Configuration and Description
- 5. Questions or Issues
- 6. Licensing and Terms
1. Introduction
JSSDK enables communication between HUAWEI Safety Detect and React Native, Cordova and Ionic platforms. This plugin exposes capabilities provided by HUAWEI Safety Detect. Detailed information about data types, constants and methods are provided by this document.
2. Installation Guide
Creating a Project in AppGallery Connect
Creating an app in AppGallery Connect is required in order to communicate with the Huawei services. To create an app, perform the following steps:
Step 1. Sign in to AppGallery Connect and select My projects.
Step 2. Select your project from the project list or create a new one by clicking the Add Project button.
Step 3. Go to Project Setting > General information, and click Add app. If an app exists in the project and you need to add a new one, expand the app selection area on the top of the page and click Add app.
Step 4. On the Add app page, enter the app information, and click OK.
- A signing certificate fingerprint is used to verify the authenticity of an app when it attempts to access an HMS Core service through the HMS Core SDK. Before using HMS Core (APK), you must locally generate a signing certificate fingerprint and configure it in AppGallery Connect. Ensure that the JDK has been installed on your computer.
Configuring the Signing Certificate Fingerprint
Step 1. Go to Project Setting > General information. In the App information field, click the icon next to SHA-256 certificate fingerprint, and enter the obtained SHA256 certificate fingerprint.
Step 2. After completing the configuration, click check mark.
React-Native Integration
Step 1: Sign in to AppGallery Connect and select My projects.
Step 2: Find your app project, and click the desired app name.
Step 3: Go to Project Setting > General information. In the App information section, click agconnect-service.json to download the configuration file.
Step 4: Create a React Native project if you do not have one.
Step 5: Copy the agconnect-service.json file to the android/app directory of your React Native project.
Step 6: Copy the signature file that generated in Generating a Signing Certificate section, to the android/app directory of your React Native project.
Step 7: Check whether the agconnect-services.json file and signature file are successfully added to the android/app directory of the React Native project.
Step 8: Open the build.gradle file in the android directory of your React Native project.
- Go to buildscript then configure the Maven repository address and agconnect plugin for the HMS SDK.
buildscript {
repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
/*
* <Other dependencies>
*/
classpath 'com.huawei.agconnect:agcp:1.4.2.301'
}
}
- Go to allprojects then configure the Maven repository address for the HMS SDK.
allprojects {
repositories {
/*
* <Other repositories>
*/
maven { url 'https://developer.huawei.com/repo/' }
}
}
Step 9: Open the build.gradle file in the android/app directory of your React Native project.
- Package name must match with the package_name entry in agconnect-services.json file.
defaultConfig {
applicationId "<package_name>"
minSdkVersion 19
/*
* <Other configurations>
*/
}
android {
/*
* <Other configurations>
*/
signingConfigs {
config {
storeFile file('<keystore_file>.jks')
storePassword '<keystore_password>'
keyAlias '<key_alias>'
keyPassword '<key_password>'
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
}
release {
signingConfig signingConfigs.config
minifyEnabled enableProguardInReleaseBuilds
...
}
}
}
Step 10: Open the build.gradle file in the android/app directory of your React Native project.
- Configure build dependencies.
buildscript {
...
dependencies {
/*
* <Other dependencies>
*/
implementation ('com.huawei.hms:rn-adapter:5.2.0.300'){
exclude group: 'com.facebook.react'
}
...
}
}
- Add AGConnect plugin to footer of the file.
apply plugin: "com.huawei.agconnect"
Step 11: Import the following class to the MainApplication.java file of your project.
import com.huawei.hms.jsb.adapter.rn.RnJSBReactPackage;
Then, add the RnJSBReactPackage() to your getPackages method. In the end, your file will be similar to the following:
@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new RnJSBReactPackage()); // <-- Add this line
return packages;
}
...
Step 12: Download js-sdk using command below.
npm i @hmscore/hms-js-safetydetect
Step 13: Import HMSSafetyDetect in App.js as following line.
import HMSSafetyDetect from "@hmscore/hms-js-safetydetect";
Step 14: First you have to call the init function.
import {NativeModules, DeviceEventEmitter} from "react-native";
...
HMSSafetyDetect.init(NativeModules, DeviceEventEmitter);
Step 15: Run your project.
- Run the following command to the project directory.
react-native run-android
Cordova Integration
Step 1: Install Cordova CLI if haven't done before.
npm install -g cordova
Step 2: Create a new Cordova project or use the existing one.
- To create new Cordova project, you can use
cordova create path [id [name [config]]] [options]
command. For more details please follow CLI Reference - Apache Cordova.
Step 3: Update the widget id
property which is specified in the config.xml
file. It must be same with package_name value of the agconnect-services.json
file.
Step 4: Add the Android platform to the project if haven't done before.
cordova platform add android
Step 5: Download plugin using command below.
cordova plugin add @hmscore/hms-js-safetydetect
Step 6: Copy agconnect-services.json
file to <project_root>/platforms/android/app
directory.
Step 7: Add keystore(.jks)
and build.json
files to your project's root directory.
You can refer to 3rd and 4th steps of Generating a Signing Certificate Codelab tutorial page for generating keystore file.
Fill
build.json
file according to your keystore information. For example:
{
"android": {
"debug": {
"keystore": "<keystore_file>.jks",
"storePassword": "<keystore_password>",
"alias": "<key_alias>",
"password": "<key_password>"
},
"release": {
"keystore": "<keystore_file>.jks",
"storePassword": "<keystore_password>",
"alias": "<key_alias>",
"password": "<key_password>"
}
}
}
Step 8: Import the following class to the MainActivity.java file of your project. You can find this file in platforms/android/app/src/main/java/<your_package_name>
directory.
import com.huawei.hms.jsb.adapter.cordova.CordovaJSBInit;
Step 9: In the same file, add CordovaJSBInit.initJSBFramework(this) line after the super.onCreate(savedInstanceState) method call.
- In the end, your file will be similar to the following:
...
import com.huawei.hms.jsb.adapter.cordova.CordovaJSBInit;
public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
CordovaJSBInit.initJSBFramework(this);
...
}
...
}
Step 10: Run the app
cordova run android
Ionic Integration
Install Ionic CLI and other required tools if haven't done before.
npm install -g @ionic/cli cordova-res native-run
Ionic with Cordova Runtime
Step 1: Enable the Cordova integration if haven't done before.
ionic integrations enable cordova
Step 2: Update the widget id
property which is specified in the config.xml
file. It must be same with package_name value of the agconnect-services.json
file.
Step 3: Add the Android platform to the project if haven't done before.
ionic cordova platform add android
Step 4: Install HMS Safety Detect Plugin
to the project.
ionic cordova plugin add @hmscore/hms-js-safetydetect
Step 5: Copy agconnect-services.json
file to <project_root>/platforms/android/app
directory.
Step 6: Add keystore(.jks)
and build.json
files to your project's root directory.
You can refer to 3rd and 4th steps of Generating a Signing Certificate Codelab tutorial page for generating keystore file.
Fill
build.json
file according to your keystore information. For example:
{
"android": {
"debug": {
"keystore": "<keystore_file>.jks",
"storePassword": "<keystore_password>",
"alias": "<key_alias>",
"password": "<key_password>"
},
"release": {
"keystore": "<keystore_file>.jks",
"storePassword": "<keystore_password>",
"alias": "<key_alias>",
"password": "<key_password>"
}
}
}
Step 7: Import the following class to the MainActivity.java file of your project. You can find this file in platforms/android/app/src/main/java/<your_package_name>
directory.
import com.huawei.hms.jsb.adapter.cordova.CordovaJSBInit;
Step 8: In the same file, add CordovaJSBInit.initJSBFramework(this) line after the super.onCreate(savedInstanceState) method call.
- In the end, your file will be similar to the following:
...
import com.huawei.hms.jsb.adapter.cordova.CordovaJSBInit;
public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
CordovaJSBInit.initJSBFramework(this);
...
}
...
}
Step 9: Run the application.
ionic cordova run android --device
Ionic with Capacitor Runtime
Step 1: Enable the Capacitor integration if haven't done before.
ionic integrations enable capacitor
Step 2: Initialize Capacitor if haven't done before. The appId
property must be same with package_name value of the agconnect-services.json
file.
npx cap init [appName] [appId]
- For more details please follow Initialize Capacitor with your app information.
Step 3: Install HMS Safety Detect plugin
to the project.
npm install @hmscore/hms-js-safetydetect
Step 4: Build Ionic app to generate resource files.
ionic build
Step 5: Add the Android platform to the project.
npx cap add android
Step 6: Copy keystore(.jks)
and agconnect-services.json
files to <project_root>/android/app
directory.
- You can refer to 3rd and 4th steps of Generating a Signing Certificate Codelab tutorial page for generating keystore file.
Step 7: Open the build.gradle
file in the <project_root>/android/app
directory.
Add
signingConfigs
entry to the android section and modify it according to your keystore.Enable
signingConfig
configuration for debug and release flavors.
...
android {
...
// Modify signingConfigs according to your keystore
signingConfigs {
config {
storeFile file('<keystore_file>.jks')
storePassword '<keystore_password>'
keyAlias '<key_alias>'
keyPassword '<key_password>'
}
}
buildTypes {
debug {
signingConfig signingConfigs.config // Enable signingConfig for debug flavor
}
release {
signingConfig signingConfigs.config // Enable signingConfig for release flavor
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
...
apply plugin: 'com.huawei.agconnect' // Apply com.huawei.agconnect plugin. This line must be added to the end of the file.
Step 8: Open the build.gradle
file in the <project_root>/android
directory. Add Huawei's maven repositories and agconnect classpath to the file.
buildscript {
repositories {
/*
<Other repositories>
*/
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
/*
<Other dependencies>
*/
classpath 'com.huawei.agconnect:agcp:1.4.2.301'
}
}
/*
<Other build.gradle entries>
*/
allprojects {
repositories {
/*
<Other repositories>
*/
maven { url 'https://developer.huawei.com/repo/' }
}
}
Step 9: Import the following class to the MainActivity.java file of your project. You can find this file in android/app/src/main/java/<your_package_name>
directory.
import com.huawei.hms.js.safetydetect.HMSSafetyDetect;
Step 10: In the same file, add add(HMSSafetyDetect.class); line to the ArrayList.
In the end, your file will be similar to the following:
... import com.huawei.hms.js.safetydetect.HMSSafetyDetect; public class MainActivity extends BridgeActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Initializes the Bridge this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{ add(HMSSafetyDetect.class); }}); } ...
Step 11: Updates dependencies, and copy any web assets to your project.
npx cap sync
Step 12: Open the project in Android Studio and run it.
npx cap open android
3. API Reference
HMSSafetyDetect
Public Method Summary
|Function |Return Type |Description |
|:------------------------------------------------------------ |----------------- |:---------------------------------------------|
| sysIntegrity(sysIntegrityRequest: SystemIntegrityRequest) | Promise<
Result<
SystemIntegrityResponse>>
| Initiates a request to check the system integrity of the current device.|
| initUserDetect() | Promise<
Result<string>>
| Initializes fake user detection.|
| userDetection() | Promise<
Result<
UserDetectionResponse>>
| Initiates a fake user detection request.|
| shutdownUserDetect() | Promise<
Result<string>>
| Disables fake user detection.|
| urlCheck(urlCheckRequest: UrlCheckRequest) | Promise<
Result<
UrlCheckResponse>>
| Initiates a URL check request.|
| initUrlChecker() | Promise<
Result<string>>
| Initializes URL check.|
| shutdownUrlChecker() | Promise<
Result<string>>
| Disables URL check.|
| isVerifyAppsCheck() | Promise<
Result<
VerifyAppsCheckResponse>>
| Checks whether app security check is enabled.|
| enableAppsCheck() | Promise<
Result<
EnableAppsCheckResponse>>
| Enables app security check.|
| getHarmfulAppsList() | Promise<
Result<
HarmfulAppsListResponse>>
| Initiates an app security check request.|
| initAntiFraud() | Promise<
Result<string>>
| Initializes imperceptible fake user detection.|
| getRiskToken() | Promise<
Result<
RiskTokenResponse>>
| Obtains a risk token.|
| releaseAntiFraud() | Promise<
Result<string>>
| Disables imperceptible fake user detection.|
| getWifiDetectStatus() | Promise<
Result<
WifiDetectResponse>>
| Obtains the malicious Wi-Fi check result.|
Public Methods
HMSSafetyDetect.sysIntegrity(sysIntegrityRequest: SystemIntegrityRequest)
| Parameter | Type | Description | | ----------- | -------- | ---------------------------------------------------------------- | | sysIntegrityRequest | SystemIntegrityRequest | Request entity object of the SysIntegrity API. |
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
SystemIntegrityResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
var nonceStr = "Sample" + new Date().getTime();
var nonceArr = [];
for (var i = 0; i < nonceStr.length; i++) {
nonceArr.push(nonceStr.charCodeAt(i));
}
const args = {
nonce: nonceArr,
alg: "RS256",
};
HMSSafetyDetect.sysIntegrity(args)
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{
"data": {
"jwsResult": "eyJhbG....cjNOQlE4emlXeXFhUUJrMlJyQ1doNlErK1NkMGI1TDNSd0hyUT09Il19.eyJhcGtDZXJ....0OTQzMjY5OTE1fQ==.l9kKlc6....NnikeutE-yD2O0gUp....H9CEXQh_pms8-5UXVr90zulcmFe4rplcC4iUf31YtvY7gWluZ7F-ltFLIi0M_ykKPwYPeLoBA0VXMmgmhkgAfwFaD0L-qyeTQJpU7QvwORDPom7ARUPEBipVkpTdbH5fjvEPDyV6GK5dNVgk-3vdHZHuqSg=="
},
"resultCode": 0,
"status": "SUCCESS"
}
HMSSafetyDetect.initUserDetect()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<string>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.initUserDetect()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{ "data": "Success init user detect.", "resultCode": 0, "status": "SUCCESS" }
HMSSafetyDetect.userDetection()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
UserDetectionResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.userDetection()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{
"data": {
"responseToken": "7_f7b28013b1d...60f40d73d1882_1614942668986"
},
"resultCode": 0,
"status": "SUCCESS"
}
HMSSafetyDetect.shutdownUserDetect()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<string>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.shutdownUserDetect()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{"data": "Shutdown user detect success.", "resultCode": 0, "status": "SUCCESS"}
HMSSafetyDetect.urlCheck(urlCheckRequest: UrlCheckRequest)
| Parameter | Type | Description | | ----------- | -------- | ---------------------------------------------------------------- | | urlCheckRequest | UrlCheckRequest | Request entity object of the URL Check API. |
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
UrlCheckResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
const args = {
url: " http://example.com/hms/safetydetect/malware",
threatTypes: [HMSSafetyDetect.ThreatTypes.MALWARE, HMSSafetyDetect.ThreatTypes.PHISHING]
};
HMSSafetyDetect.urlCheck(args)
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{
"data": {
"rtdResults": {
"threatType": [1],
"url": " http://example.com/hms/safetydetect/malware"
},
"statusCode": 200,
"statusMessage": "Success",
"success": true
},
"resultCode": 0,
"status": "SUCCESS"
}
HMSSafetyDetect.initUrlChecker()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<string>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.initUrlChecker()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{"data": "Init OK", "resultCode": 0, "status": "SUCCESS"}
HMSSafetyDetect.shutdownUrlChecker()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<string>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.shutdownUrlChecker()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{"data": "Shutdown OK", "resultCode": 0, "status": "SUCCESS"}
HMSSafetyDetect.isVerifyAppsCheck()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
VerifyAppsCheckResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.isVerifyAppsCheck()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{"data": {"result": true}, "resultCode": 0, "status": "SUCCESS"}
HMSSafetyDetect.enableAppsCheck()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
EnableAppsCheckResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.enableAppsCheck()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{"data": {"result": true}, "resultCode": 0, "status": "SUCCESS"}
HMSSafetyDetect.getHarmfulAppsList()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
HarmfulAppsListResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.getHarmfulAppsList()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{
"data": {
"harmfulAppsList": [
{
"apkPackageName": "com.wo***",
"apkCategory": 2,
"apkSha256": "2ntVojKbnzmhQ...55uKTq+sa9AGI="
}
]
},
"resultCode": 0,
"status": "SUCCESS"
}
HMSSafetyDetect.initAntiFraud()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<string>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.initAntiFraud()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{"data": "Init Success.", "resultCode": 0, "status": "SUCCESS"}
HMSSafetyDetect.getRiskToken()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
RiskTokenResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.getRiskToken()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{
"data": {
"riskToken": "SFMyNTY=.MDp2PWNvbW1vb....aDNlS3l2VmZNQjRZd2pIV3RwOU09.NV6pG8d6D5yVucjuCWpD71V8k2mmWtiuQQ-fx94RQ6c="
},
"resultCode": 0,
"status": "SUCCESS"
}
HMSSafetyDetect.releaseAntiFraud()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<string>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.releaseAntiFraud()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{"data": "Shutdown user detect success.", "resultCode": 0, "status": "SUCCESS"}
HMSSafetyDetect.getWifiDetectStatus()
| Return Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| Promise<
Result<
WifiDetectResponse>>
| If the operation is successful, promise will resolve successfully. Otherwise it throws an error. |
Sample Code:
HMSSafetyDetect.getWifiDetectStatus()
.then((res) => console.log(JSON.stringify(res)))
.catch((error) => console.log(JSON.stringify(error)));
Response:
{
"data": {
"wifiDetectStatus": 1
},
"resultCode": 0,
"status": "SUCCESS"
}
Data Types
Result
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| status | string
| Indicates whether the operation was successful or not. |
| resultCode | number
| Result code of the operation. |
| data | T
| The data that is obtained after the operation completed. |
SystemIntegrityRequest
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| nonce | number[]
| Cryptographic nonce value, which is used to prevent replay attacks. Ensure that the nonce value passed each time when the sysIntegrity API is called is unique. A nonce value consists of 16 to 66 bytes. |
| alg | string
| Optional parameter. Signature algorithm padding mode. The options include RS256 and PS256 |
UrlCheckRequest
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| url | string
| URL to check, including the protocol, host, and path but excluding query parameters. The SDK will discard all passed query parameters. |
| threatTypes | HMSSafetyDetect.ThreatTypes[]
| Signature algorithm padding mode. The options include RS256 and PS256 |
SystemIntegrityResponse
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| jwsResult | string
| System integrity check result. |
UserDetectionResponse
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| responseToken | string
| Response token returned by the userDetection API. You can use the response token to obtain the fake user detection result from the cloud of UserDetect. |
UrlCheckResponse
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| success | boolean
| Indicates whether URL check was successful or not. |
| statusCode | number
| Status code of Url check. |
| statusMessage | string
| Status message of Url check. |
| rtdResults | string
| Url check result. |
rtdResults
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| url | string
| The URL that was checked. |
| threatType | HMSSafetyDetect.ThreatTypes[]
| Shows url threat types. |
VerifyAppsCheckResponse
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| result | boolean
| Indicates whether apps check security is enabled or not. |
EnableAppsCheckResponse
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| result | boolean
| Indicates whether apps check security is enabled or not. |
HarmfulAppsListResponse
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| harmfulAppsList | MaliciousAppsData[]
| Malicious apps list. |
MaliciousAppsData
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| apkPackageName | string
| Package name of a malicious app. |
| apkCategory | HMSSafetyDetect.AppRiskLevel | Type of a malicious app. |
| apkSha256 | string
| Base64 encoding result of the SHA-256 value of a malicious app. |
RiskTokenResponse
| Name | Type | Description |
| ------- | --------------------- | ---------------------- |
| riskToken | string
| Risk Token. |
WifiDetectResponse
| Name | Type | Description | | ------- | --------------------- | ---------------------- | | wifiDetectStatus | HMSSafetyDetect.WifiStatus | Security status of the current Wi-Fi. |
Constants
ThreatTypes
| Value | Type | Field | Description |
| ------ | -------- | ------------------------------------ | ---------------- |
| 1 | number
| HMSSafetyDetect.ThreatTypes.MALWARE | Malware. |
| 3 | number
| HMSSafetyDetect.ThreatTypes.PHISHING | Phishing. |
AppRiskLevel
| Value | Type | Field | Description |
| ------ | -------- | -------------------------------- | ---------------- |
| 1 | number
| HMSSafetyDetect.AppRiskLevel.RISK_APP | Risk app. |
| 2 | number
| HMSSafetyDetect.AppRiskLevel.VIRUS_APP | Virus app. |
WifiStatus
| Value | Type | Field | Description |
| ------ | -------- | ---------------------------------- | ---------------- |
| 0 | number
| HMSSafetyDetect.WifiStatus.NO_WiFi | There is no connected WiFi. |
| 1 | number
| HMSSafetyDetect.WifiStatus.WiFi_SECURE | WiFi is secure. |
| 2 | number
| HMSSafetyDetect.WifiStatus.WiFi_INSECURE | WiFi is not secure. |
4. Configuration and Description
Configuring Obfuscation Scripts
React Native
In order to prevent error while release build, you may need to add following lines in proguard-rules.pro
file.
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-repackageclasses
Cordova
Before building the APK, configure the obfuscation configuration file to prevent the HMS Core SDK from being obfuscated.
NOTE: This step is required only if you want to minify and obfuscate your app. By default obfuscation is disabled in Cordova and Ionic apps.
The obfuscation is done by ProGuard
. By default, in Cordova and Ionic apps ProGuard is disabled. Even though ProGuard is not available, ProGuard support can be added through 3rd party ProGuard plugins. If ProGuard is enabled in your project, the Huawei Cordova Safety Detect plugin's ProGuard rules need to be added to your project. These rules are as follows:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-repackageclasses
5. Questions or Issues
If you have questions about how to use HMS samples, try the following options:
- Stack Overflow is the best place for any programming questions. Be sure to tag your question with huawei-mobile-services.
- Huawei Developer Forum HMS Core Module is great for general questions, or seeking recommendations and opinions.
- Huawei Developer Docs is place to official documentation for all HMS Core Kits, you can find detailed documentations in there.
6. Licensing and Terms
Huawei JS SDK is licensed under Apache 2.0 license.