• Developer Guide
  • SDK 集成

Android SDK

DeepLink设置

Dashboard设置

需要在Dashboard上设置以下两种信息。

  • URI Scheme

  • sha256_cert_fingerprints

Scheme 设置

请按照上面图片所示,在Android URL Scheme输入框中输入包含://的URL Scheme,如下所示。

example://

Attention

Airbridge的URI Scheme仅支持英文小写字母、数字以及部分特殊字符 (-+.)。

Fingerprint 设置

获取sha256_cert_fingerprints的方法如下。

  1. 请准备好在Google Play商店注册应用时使用的

    keystore文件。

  2. 请在 Terminal中执行以下命令。

Shell
1
keytool -list -v -keystore my-release-key.keystore

3. 如下所示,复制 Certificate fingerprints区域中的 SHA256值,然后按照上方图片所示,将其输入到 Android sha256_cert_fingerprints输入框中。

Shell
1234
Certificate fingerprints:
    MD5:  4C:65:04:52:F0:3F:F8:65:08:D3:71:86:FC:EF:C3:49
    SHA1: C8:BF:B7:B8:94:EA:5D:9D:38:59:FE:99:63:ED:47:B2:D9:5A:4E:CC
    SHA256: B5:EF:4D:F9:DC:95:E6:9B:F3:9A:5E:E9:D6:E0:D8:F6:7B:AB:79:C8:78:67:34:D9:A7:01:AB:6A:86:01:0E:99

Attention

Android sha256_cert_fingerprints可以用逗号(,)分隔形式设置多个值。

Project 设置

Intent Filter 设置

请根据下面的步骤设置Intent Filter。

  1. 打开 AndroidManifest.xml文件。

  2. 在将处理DeepLink的 Activity中,按照以下方式添加Intent Filter

    123456789101112131415161718192021222324252627282930
    <activity ...>
        ...
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
    
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
    
            <data android:scheme="http" android:host="YOUR_APP_NAME.abr.ge" />
            <data android:scheme="https" android:host="YOUR_APP_NAME.abr.ge" />
        </intent-filter>
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
    
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
    
            <data android:scheme="http" android:host="YOUR_APP_NAME.airbridge.io" />
            <data android:scheme="https" android:host="YOUR_APP_NAME.airbridge.io" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
    
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
    
            <data android:scheme="YOUR_APP_URI_SCHEME" />
        </intent-filter>
        ...
    </activity>
  • YOUR_APP_NAME.deeplink.page: Airbridge App Links 版本2

  • YOUR_APP_NAME.airbridge.io: Airbridge App Links 版本1

  • YOUR_APP_URI_SCHEME: URI Scheme方式的DeepLink

自定义域名设置

在 Airbridge Dashboard中创建监测链接时,可以使用 deeplink.page 或 abr.ge 形式的监测链接,但为了提高监测链接的品牌效果和点击率(CTR),也可以使用自定义 URL,如 go.my_company.com/abcd

  1. 按照 该指南 设置要使用的自定义域名。

  2. 请创建 res/values/airbridge.xml文件并在文件中添加之前设置的自定义域名地址。

    123456
    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools">
        <string-array name="co_ab180_airbridge_custom_domains">
            <item>YOUR_CUSTOM_DOMAIN</item>
        </string-array>
    </resources>
  3. 与之前设置的 Intent Filter一样, 请将 Intent Filter添加到处理DeepLink的 Activity中,如下所示。

    12345678910111213
    <activity ...>
        ...
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
    
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
    
            <data android:scheme="http" android:host="YOUR_CUSTOM_DOMAIN" />
            <data android:scheme="https" android:host="YOUR_CUSTOM_DOMAIN" />
        </intent-filter>
        ...
    </activity>

    Attention

    上述内容中的YOUR_CUSTOM_DOMAIN应与Airbridge Dashboard中设置的信息相符。

为了处理前面设置的Activity中添加的Intent Filter的DeppLink,需要进行以下操作。

123456789101112131415161718192021222324252627
@Override
protected void onResume() {
    super.onResume();
    Airbridge.getDeeplink(getIntent(), new AirbridgeCallback<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            // Process deeplink data
        }

        @Override
        public void onFailure(Throwable throwable) {
            // Error
        }

        @Override
        public void onComplete() {
            // After process deeplink data
        }
    });
}

// The code below is required for proper deeplink processing
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}

在Airbridge SDK中,Deferred DeepLink通常会根据AndroidManifest.xml中设置的Intent Filter自动调用相应的Activity,并通过与前面描述的DeepLink回调设置相同的方式统一进行处理。

如果需要使用通过Deferred DeepLink获取的信息来处理特殊操作,或者不希望通过Deferred DeepLink自动调用Activity,可以使用以下方法进行设置。

1234567891011
AirbridgeConfig config = new AirbridgeConfig.Builder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
    .setOnDeferredDeeplinkReceiveListener(new OnDeferredDeeplinkReceiveListener() {
        @Override
        public boolean shouldLaunchReceivedDeferredDeeplink(Uri uri) {
            // If you want to open the target activity, please return true otherwise false
            // Default returning value = true
            return true;
        }
    })
    .build();
Airbridge.init(this, config);

验证DeepLink设置

完成Airbridge SDK的DeepLink设置后,可以通过以下链接验证是否正确跳转到相应的移动应用页面。

  • YOUR_APP_URI_SCHEME://

完成DeepLink设置和验证后,可以在Airbridge Dashboard > Raw Data > App Real-time Log选项卡中查看相关信息。

设备设置

设置设备别名

利用 Airbridge SDK 设置设备别名。 即使应用关闭后,别名将保留,除非以其他方式删除。

123
Airbridge.setDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");
Airbridge.removeDeviceAlias("DELETE_THIS_KEY");
Airbridge.clearDeviceAlias();

方法

说明

setDeviceAlias(key: String, value: String)

将键值对添加到设备标识符中。

removeDeviceAlias(key: String)

删除对应的设备别名。

clearDeviceAlias()

删除所有设备别名。

高级设备设置

隐私保护

请启用此功能如由于隐私法(例:GDPR,CCPR)而仅应在有用户同意的情况下收集和传输数据。

123456789101112
// Default Auto Start Tracking Enabled = true
AirbridgeConfig config = new AirbridgeConfig.Builder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
    .setAutoStartTrackingEnabled(false)
    .build();
Airbridge.init(this, config);

...

// Set a variable like below
if (properties.isGDPRAccepted) {
    Airbridge.startTracking();
}

Was this page helpful?

Have any questions or suggestions?