如何在浏览器中单击URL时打开Android应用程序

时间:2014-08-27 10:04:19

标签: android android-webview intentfilter

当用户点击具有我的域名的链接时,我必须打开我的Android应用程序。例如,假设我的域名是abc.com,我已在我的Facebook页面上发布此链接。当我的一个朋友(他的应用程序中安装了我的应用程序)点击链接(在设备的浏览器中)时,我应该能够在我的应用程序内的webview中打开我的网站。

我不确定如何完成这项工作,但意图过滤器会有效吗?如果是这样,有人可以给我一段代码吗?

2 个答案:

答案 0 :(得分:10)

您必须在单击网址时应启动的活动中定义自定义意图过滤器。

假设您想在用户点击网页上的http://www.example.com/链接时启动FirstActivity。

将此添加到Manifest中的活动:

<activity android:name=".FirstActivity"
          android:label="FirstActivity">
  <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.example.com" android:scheme="http"></data>
  </intent-filter>
</activity>

当用户点击指向http://www.example.com/的HTML链接时,系统会提示您使用浏览器或应用。

答案 1 :(得分:6)

您可以使用URI方案(链接,例如myscheme:// open / chat)实现此目的,将此过滤器添加到您的清单中,例如主要活动部分(设置您的方案名称):

<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:scheme="YOUR_SCHEME_NAME" />
</intent-filter>

在您设置过滤器的活动中,您可以通过调用此方法来获取URI(在onCreate中):

Uri intentUri = getIntent().getData();