如何拦截来自浏览器的链接以打开我的Android应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我希望能够在用户点击给定模式的URL时提示我的应用打开链接,而不是允许浏览器打开它。这可能是用户在浏览器中的网页上,电子邮件客户端中或在新鲜出炉的应用程序中的WebView中。

例如,从手机中的任意位置点击YouTube链接,你就有机会打开YouTube应用。

我如何实现这个我自己的应用程序?

提问于
用户回答回答于

你可以从Romain Guy的Photostream应用的AndroidManifest.xml中:

    <activity
        android:name=".PhotostreamActivity"
        android:label="@string/application_name">

        <!-- ... -->            

        <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="http"
                  android:host="flickr.com"
                  android:pathPrefix="/photos/" />
            <data android:scheme="http"
                  android:host="www.flickr.com"
                  android:pathPrefix="/photos/" />
        </intent-filter>
    </activity>

你需要查找动作,然后使用你上传的网址进行操作。该Intent.getData()方法给你一个Uri:

    final Intent intent = getIntent();
    final String action = intent.getAction();

    if (Intent.ACTION_VIEW.equals(action)) {
        final List<String> segments = intent.getData().getPathSegments();
        if (segments.size() > 1) {
            mUsername = segments.get(1);
        }
    }
用户回答回答于

扫码关注云+社区