android 初始化www.example.com时出现问题branch.io

g6baxovj  于 2023-01-28  发布在  Android
关注(0)|答案(2)|浏览(116)

我使用branch.io来处理应用链接。AndroidManifest有针对分支URI方案的意图过滤器:

<intent-filter>
    <data android:scheme="***" android:host="open" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

AndroidManifest还为应用链接提供了意图过滤器:

<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="https" android:host="***.app.link" />
            <data
                android:host="***-alternate.app.link"
                android:scheme="https"/>
            <data
                android:host="***.test-app.link"
                android:scheme="https"/>
            <data
                android:host="***-alternate.test-app.link"
                android:scheme="https"/>

AppLinkActivity的LaunchMode为singleTask。我在应用程序中初始化分支,在onCreate:

Branch.getAutoInstance(this);

打开AppLinkActivity后,我获得示例并初始化会话:

Branch branch = Branch.getInstance(getApplicationContext());
   branch.initSession((referringParams, error) -> {
        LogFileUtil.writeLog("Finish init session");
        if (error == null) {
            //Кое что делаю
        } else {
           //Кое что делаю
        }
    }, this.getIntent().getData(), this);

当我通过AppLink打开我的应用程序时,referringParams不为空。我可以获取所需的数据。但当应用程序打开时,我从其他应用程序单击AppLink,referringParams为空。我认为问题出在init分支。如何修复?

dzjeubhm

dzjeubhm1#

您需要确保重写AppLinkActivity中的onNewIntent()方法。这将确保返回相同的Intent。
将以下代码段添加到AppLinkActivity:

@Override
protected void onNewIntent(Intent intent) {
    this.setIntent(intent);
}
lrpiutwd

lrpiutwd2#

解决方案-您需要将AppLinkActivity类设为main。此Activity必须多一个intent过滤器:

<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

相关问题