【发布时间】:2013-09-12 16:31:37
【问题描述】:
您知道当您单击任何链接时,系统会询问您要使用哪个浏览器/应用程序打开它?从这个概念开始,是否可以在我的 webview 中做到这一点?例如,当域为 www.stackoverflow.com 时,它会询问我是否要使用我的 webview 打开链接(仅为 stackoverflow 链接创建)?我不知道我是否清楚。
【问题讨论】:
标签: java android dns android-webview hyperlink
您知道当您单击任何链接时,系统会询问您要使用哪个浏览器/应用程序打开它?从这个概念开始,是否可以在我的 webview 中做到这一点?例如,当域为 www.stackoverflow.com 时,它会询问我是否要使用我的 webview 打开链接(仅为 stackoverflow 链接创建)?我不知道我是否清楚。
【问题讨论】:
标签: java android dns android-webview hyperlink
在您的 AndroidManifest.xml 中的 <activity> 下写入以下标签。
当用户点击 StackOverflow 链接时,系统会将您的应用包含在列表中。
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="www.stackoverflow.com" android:scheme="http"></data>
</intent-filter>
更新
您可以在Activity 中使用getIntent() 来获取参数(URL)。在Activity 的onCreate 方法中添加以下行。
Intent intent = getIntent();
if (Intent.ACTION_VIEW.equals(intent.getAction())) {
String url = intent.getData().toString();
webView.loadUrl(url);
}
【讨论】:
getIntent()?其实我用webview.loadUrl("http://www.stackoverflow.com");
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.stackoverflow.com")); startActivity(i); 。当我打开应用程序时,它会询问我要使用哪个应用程序打开它(这很奇怪,因为它必须默认打开与该应用程序的链接)。当我尝试点击一个链接通过邮件发送给我的朋友时(只需 www.stackoverflow.com),它要求我只使用浏览器而不是应用程序打开
startActivity 用于打开另一个活动(应用程序)以显示 URL。那不是你打算做的,对吧?当其他应用想要打开某个 StackOverflow URL 时,您希望接收该 URL。
<intent-filter>,并在您的 onCreate 方法中调用 getIntent() 以接收来自其他应用程序的 URL。