AndroidがインテントのURLに応答する


152

ユーザーが特定のURLにアクセスしたときに意図が実行されるようにします。たとえば、Androidマーケットはhttp://market.android.com/ urlsでこれを行います。YouTubeもそうです。私もそうしたいです。


8
この質問に対する素晴らしい答えは、stackoverflow.com
questions / 2448213 /…にあります。– neu242

2
この質問に対するより良い答えがあります。stackoverflow.com
rds

回答:


192

やったよ!を使用し<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="www.youtube.com" android:scheme="http" />
</intent-filter>

これは完璧に動作します!


9
私にはうまくいきません。アプリケーションを開くサンプルリンクを教えてください。
パスカルクライン

7
「www.youtube.com/fr/」ではなく「www.youtube.com」に反応したいのですが...どうすればよいですか。
ギルボ


1
これが世界中でどのように機能しているかはわかりません。単にchromeでは機能せず、 "android:pathPrefix"要素を配置するまで常にブラウザでリンクを開きます。とにかく、ドキュメントに記載されているように、回答にはカテゴリ値がありません。それでもだめな場合は、こちらを参照してください 。
Rajat Sharma、2015

1
これが機能するのは、ブラウザーの外側、ノートアプリ、またはwhatsappからのメッセージを開いた場合のみであることに注意することが重要です。これはlollipopで機能しています
D4rWiNS

10

さまざまなケースで機能させるために、インテントフィルターにさまざまな順列を追加する必要がある場合があります(http / https / ect)。

たとえば、ユーザーがgoogleドライブフォームへのリンクを開いたときに開くアプリについて、次のことを行わなければなりませんでした。 www.docs.google.com/forms

パス接頭辞はオプションであることに注意してください。

        <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="docs.google.com"
                android:pathPrefix="/forms"/>
            <data
                android:scheme="http"
                android:host="www.docs.google.com"
                android:pathPrefix="/forms" />

            <data
                android:scheme="https"
                android:host="www.docs.google.com"
                android:pathPrefix="/forms" />

            <data
                android:scheme="https"
                android:host="docs.google.com"
                android:pathPrefix="/forms" />
        </intent-filter>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.