如何隐藏Trusted Web Activity的错误提示Toast
阻止Trusted Web Activity错误Toast显示的方法
TWA默认弹出的错误Toast,可通过自定义回调或修改配置拦截,具体分场景处理:
1. 拦截Digital Assets Link验证失败的Toast
这类Toast由TWA的验证逻辑触发,通过自定义TwaLauncher.Callback覆盖默认行为即可:
val launcher = TwaLauncher(this) launcher.launch( Uri.parse("https://your-domain.com"), object : TwaLauncher.Callback() { override fun onDigitalAssetLinksValidationFailed() { // 不调用super方法,即可阻止默认Toast弹出 // 可在此添加自定义处理,比如仅记录日志 } } )
2. 拦截网络中断等加载错误的Toast
这类错误Toast来自Custom Tabs内部逻辑,需通过自定义CustomTabsCallback拦截导航失败事件:
val customTabsIntent = CustomTabsIntent.Builder().build() val connection = object : CustomTabsServiceConnection() { override fun onCustomTabsServiceConnected(name: ComponentName, client: CustomTabsClient) { val callback = object : CustomTabsCallback() { override fun onNavigationEvent(event: Int, extras: Bundle?) { // 拦截导航失败事件 if (event == CustomTabsCallback.NAVIGATION_FAILED) { // 不触发默认Toast,自定义处理逻辑 } else { super.onNavigationEvent(event, extras) } } } client.warmup(0L) client.newSession(callback) } override fun onServiceDisconnected(name: ComponentName?) {} } // 绑定CustomTabs服务 CustomTabsClient.bindCustomTabsService(this, "com.android.chrome", connection) // 启动TWA customTabsIntent.launchUrl(this, Uri.parse("https://your-domain.com"))
若使用TrustedWebActivityIntentBuilder,可结合上述回调方法覆盖默认错误处理。注意不同浏览器的Custom Tabs实现可能存在差异,建议在Chrome、Edge等主流浏览器上测试验证。
内容的提问来源于stack exchange,提问作者Sara Talaat
相关产品推荐
相关产品推荐

