我有一个特定的网址,我希望从带有意图过滤器的网页视图重定向到我的应用中的特定活动. How to implement my very own URI scheme on Android描述了如何为浏览器页面执行此操作,但是当通过webview访问该URL时,此相同的intent过滤器不起作用.还有什么需要添加到此intent过滤器以捕获这些webview链接?
最佳答案
我没有意图过滤器和webviews一起工作只是声明清单上的意图,我认为他们不应该. (我想知道为什么……)我认为这样做的方法是在尝试在webview中打开它们并创建一个意图时捕获URL.
然后,对于清单中的活动寄存器,如下所示:
您可以在单击以下链接时打开PretendChat活动:webview中的“testing:// chat”.为了让你发生这种情况
在webview上使用的webview客户端上需要以下代码.假设启动webview的活动称为WebviewActivity.
private class TestWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
WebviewActivity.this.startActivity(intent);
} catch(ActivityNotFoundException e) {
Log.e(LOGTAG,"Could not load url"+url);
}
return super.shouldOverrideUrlLoading(view,url);
}
}