如何拦截点击特定网址并打开自己的网络客户端 - Android

时间:2016-04-28 09:55:26

标签: android hyperlink android-webview

我正在聊天,在这个聊天中,一些消息将是指向特定网址的链接(此网址会在服务器中打开文档查看器)。

链接看起来像这样:http://X.X.X.X:8080/DocumentViewer/...

然后我有一个webview活动,我想打开这种类型的链接。

如何"拦截"当用户点击这种类型的链接时,打开我自己的webview并且不打开" external"浏览器?

1 个答案:

答案 0 :(得分:4)

我认为您可以通过在intent-filter文件中为您感兴趣的网址格式创建AndroidManifest.xml来完成此操作。intent-filter的文档< { {3}}>元素显示如何指定hostscheme(在您的案例中为“html”)来处理网址。

data回答显示了开发人员想要处理youtube.com网址的示例。为了完整起见,我在下面附上了清单摘录:

<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.youtube.com" android:scheme="http" />
</intent-filter>

基于此,我认为(我自己没有这样做)你的意图过滤器看起来应该是这样的:

<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="http://X.X.X.X:8080/DocumentViewer/" android:scheme="http" />
</intent-filter>