我正在尝试在 Android 上使用 Chrome CustomTabs,但在使用 CustomTabsCallback 时遇到问题。所以,我在网上搜索了一些示例或文档以在我的代码中实现,但不幸的是我没有找到任何东西......
我需要接收托管网页发送的 postMessage 并阅读其中的内容。postMessage 是使用“*”作为来源发送的,但我认为这不是真正的问题。
这是我的代码:
CustomTabsClient.bindCustomTabsService(context, CUSTOM_TAB_PACKAGE_NAME, new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(ComponentName name, CustomTabsClient client) {
mClient = client;
mClient.warmup(0);
CustomTabsSession session = mClient.newSession(new CustomTabsCallback() {
@Override
public void onPostMessage(String message, Bundle extras) {
// Here the method not called by CustomTabs
super.onPostMessage(message, extras);
}
@Override
public void onMessageChannelReady(Bundle extras) {
super.onMessageChannelReady(extras);
}
@Override
public void onNavigationEvent(int navigationEvent, Bundle extras) {
super.onNavigationEvent(navigationEvent, extras);
}
});
session.mayLaunchUrl(uri, null, null);
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(session);
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context, uri);
}
@Override
public void onServiceDisconnected(ComponentName name) {
mClient = null;
}
});
我接受所有建议,这让我发疯。
提前致谢。