未处理的应用程序链接的自定义选项卡
Custom tabs for unhandled applinks
我已经实施 applinks 来处理来自我域的所有 url,如下所示
<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="http" />
</intent-filter>
但我想在 customtabs 中打开来自同一域的一些链接。我正在实现此逻辑以在 customtabs
中调用这些链接
CustomTabsServiceConnection connection = new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(ComponentName componentName, CustomTabsClient client) {
client.warmup(0L);
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
builder.setInstantAppsEnabled(false);
builder.setToolbarColor(context.getResources().getColor(R.color.pure_white));
builder.setSecondaryToolbarColor(context.getResources().getColor(R.color.pure_white));
builder.setShowTitle(true);
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context,Uri.parse("http://www.example.com/unhandled"));
}
@Override
public void onServiceDisconnected(ComponentName name) {}
};
CustomTabsClient.bindCustomTabsService(context, "com.android.chrome", connection);
但是这些链接被我的 applink intent 捕获,并且它在 loop.What 中继续运行,我错过了吗?任何想法或建议都会很有用。
在启动 CustomTabs 的 Intent 上设置包应该强制它打开 Chrome。
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.intent.setPackage("com.android.chrome");
customTabsIntent.launchUrl(
context,Uri.parse("http://www.example.com/unhandled"));
此外,由于 Chrome 不是唯一支持自定义选项卡的浏览器,我建议遵循 best practices,并支持其他浏览器。
我已经实施 applinks 来处理来自我域的所有 url,如下所示
<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="http" />
</intent-filter>
但我想在 customtabs 中打开来自同一域的一些链接。我正在实现此逻辑以在 customtabs
中调用这些链接 CustomTabsServiceConnection connection = new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(ComponentName componentName, CustomTabsClient client) {
client.warmup(0L);
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
builder.setInstantAppsEnabled(false);
builder.setToolbarColor(context.getResources().getColor(R.color.pure_white));
builder.setSecondaryToolbarColor(context.getResources().getColor(R.color.pure_white));
builder.setShowTitle(true);
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context,Uri.parse("http://www.example.com/unhandled"));
}
@Override
public void onServiceDisconnected(ComponentName name) {}
};
CustomTabsClient.bindCustomTabsService(context, "com.android.chrome", connection);
但是这些链接被我的 applink intent 捕获,并且它在 loop.What 中继续运行,我错过了吗?任何想法或建议都会很有用。
在启动 CustomTabs 的 Intent 上设置包应该强制它打开 Chrome。
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.intent.setPackage("com.android.chrome");
customTabsIntent.launchUrl(
context,Uri.parse("http://www.example.com/unhandled"));
此外,由于 Chrome 不是唯一支持自定义选项卡的浏览器,我建议遵循 best practices,并支持其他浏览器。