まず、私の質問は this 、 this 、および this に非常に似ています。 Android私が達成しようとしているドキュメントは here です。これらのリソースを使用してこれを機能させることができなかったので、重複としてマークしないでください。そうではありません。
WebサイトとAndroidアプリケーションがあります。ユーザーは http://mywebsite.com/map/ のようなリンクを含むQRコードをスキャンできます。ユーザーがこのリンクを開こうとすると、Androidを選択して、アプリケーションを使用してそのリンクを開くことを選択できる選択ダイアログを表示します。アプリケーションがインストールされていない場合は、指定されたウェブサイト。
Chromeは、ユーザーがそのアドレスに移動したときに選択ダイアログを開くことでこれを許可します。たとえば、Chromeで Stack Exchangeアプリ をダウンロードしてこの質問に移動してみてくださいこれは次のように表示されます。
上記の回答の提案に従って、AndroidManifest.xmlに次のコードを追加しました。
<intent-filter>
<action Android:name="Android.intent.action.VIEW" />
<action Android:name="Android.intent.action.SEND" />
<category Android:name="Android.intent.category.DEFAULT" />
<category Android:name="Android.intent.category.BROWSABLE" />
<data
Android:Host="mywebsite.com"
Android:path="/map"
Android:scheme="http" />
<data
Android:Host="mywebsite.com"
Android:path="/animals"
Android:scheme="http" />
<data
Android:Host="mywebsite.com"
Android:path="/articles"
Android:scheme="http" />
</intent-filter>
また、Android:mimeType = "text/plain"をデータに追加しようとしましたが、役に立ちませんでした。
問題は、 http://mywebsite.com/map または http://mywebsite.com/map/ にアクセスすると= Chromeは、選択ダイアログを表示せずにWebページを開くだけです。
言及したいと思います:
次のように設定する必要があります。
<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="example.com"
Android:pathPrefix="/someresource/"
Android:scheme="http" />
<data
Android:Host="www.example.com"
Android:pathPrefix="/someresource/"
Android:scheme="http" />
</intent-filter>
あなたの場合、Android:pathの代わりにAndroid:pathPrefixを使用する必要があることに注意してください。
念のため、誤って選択ダイアログを表示するのではなく、常にchromeでリンクを開くように設定した場合に備えて、アプリの設定をリセットする必要があります。一致するuriを開くと、セレクタは表示されません。
次に、インテントフィルターに必要な数のデータ要素を含めることができますが、情報を繰り返す必要はありません。次のような同じことを行うことができます。
<data Android:Host="mywebsite.com"/>
<data Android:scheme="http"/>
<data Android:path="/map"/>
<data Android:path="/animals"/>
<data Android:path="/articles"/>
ただし、パスにはワイルドカードを使用できます
<data Android:path="/.*"/>
追加することを検討してください
<data Android:Host="www.mywebsite.com"/>
最後に、選択ダイアログを表示せずに、特定のアプリのインテント/アクティビティを直接開きたい場合があります。ウェブサイトでAndroidユーザーエージェントを検出した場合、次の方法でリンクURLを作成できます。
<a href="intent://mywebsite.com/articles#Intent;package=com.myapp;scheme=http;end;"/>
詳細についてはこちらをご覧ください AndroidでWebブラウザー(Chrome)からアプリを開くにはどうすればよいですか? A Hrefリンクで何をしなければなりませんか?
この方法では、アプリがインストールされていない場合、ユーザーは指定されたアプリパッケージのGoogle Playストアに移動します。
それでも問題が解決しない場合は、意図フィルターの優先順位を確認してください。 http://developer.Android.com/guide/topics/manifest/intent-filter-element.html
私の場合、サイトのURLは次のとおりです:http://www.example.org/mobile/
これらのコードをAndroidManifest.xml内のactivityに入れます
<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.example.org"
Android:pathPrefix="/mobile/"
Android:scheme="http" />
</intent-filter>
ここに、
scheme->特定のサイトのプロトコル
Host->[〜#〜] www [〜#〜]を含む正確なサイトURL
pathprefix->利用可能な場合、サイトのサブパス
さて、
chrome/etc Android browser'search box likeexampleを選択し、選択したダイアログを開きます.. !!