如何将已摄取的深层链接推送回Android上的Web浏览器

时间:2017-01-25 16:29:20

标签: android deep-linking

我目前在应用程序中提取深层链接时遇到问题,但在进一步检查URL后,我想将URL推回到Web浏览器以显示,因为我的应用程序没有提供使用它的能力。当我尝试在Web浏览器中打开URL时,没有任何反应,因为我将其定义为深层链接。我尝试使用android:pathPrefix =" /#!/ foo"清除清单,但不支持#字符,导致整个操作不起作用。

的AndroidManifest.xml

    <activity
        android:name=".activities.IntentForwardingActivity"
        android:launchMode="singleTask"
        >
        <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:host="www.example.com"
                android:scheme="https"
                />
        </intent-filter>
    </activity>

IntentForwardingActivity.java

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    handleIntent(intent);
}

private void handleIntent(Intent intent) {
    String action = intent.getAction();
    if (action != null && action.equals(Intent.ACTION_VIEW)) {
        Uri data = intent.getData();
        handleDeepLinking(data.toString());
    }
}

private void handleDeepLinking(String url) {
    Intent intent;
    if (url.contains("/#!/foo")) {
        intent = HomeActivity.newIntentForFoo(this, url);
    } else {
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    }
    startActivity(intent);
    finish();
}

0 个答案:

没有答案