私はこれを持っていますintent-filter
ユーザーがeeexample.comへのリンクをクリックしてアプリを開くたびに欲しい:
<intent-filter>
<data Android:scheme="http" />
<data Android:scheme="http" Android:Host="eeexample.com"/>
<action Android:name="Android.intent.action.VIEW" />
<category Android:name="Android.intent.category.DEFAULT" />
<category Android:name="Android.intent.category.BROWSABLE" />
</intent-filter>
ユーザーがGmailアプリでeeexample.comをクリックした場合の例:
次に、このリンクをmy appまたはbrowserから開くかどうかをユーザーに尋ねるダイアログを開きます。
しかし、私はユーザーがリンクをクリックしたときにそれが開く[〜#〜]のみ[〜#〜]何も要求せずにアプリが欲しいだけです。または、最悪のシナリオでは、ブラウザではなくAppetitである私のアプリでそれを開くように要求するだけです。これは可能ですか?
したがって、これは App Links で実行できるようですが、APIレベル23(Android 6.0)の場合のみですが、APIレベル15(Android 4.0)の場合はこれが必要ですか?
明確化ダイアログのバイパスは、Android 6.0 API for App Linking でのみ可能です。
Android 6.0(APIレベル23)以降では、特定の種類のリンクのデフォルトハンドラーとしてアプリを指定できます。ユーザーがアプリをデフォルトのハンドラーにしたくない場合は、Settingsからこの動作をオーバーライドできます。
リンクの自動処理には、アプリ開発者とWebサイト所有者の協力が必要です。開発者は、1つ以上のWebサイトとの関連付けを宣言し、システムにそれらの関連付けを確認するように要求するようにアプリを構成する必要があります。 Webサイトの所有者は、デジタルアセットリンクファイルを公開することにより、その検証を提供する必要があります。
これには、適切な インテントハンドラー の作成と、Android:autoVerify="true"
の追加による自動検証の有効化が含まれます。
<activity ...>
<intent-filter Android:autoVerify="true">
<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="www.Android.com" />
<data Android:scheme="https" Android:Host="www.Android.com" />
</intent-filter>
</activity>
次に、更新をWebサイト側で Webサイトの関連付けの宣言 によって行う必要があります。これにより、Webサイトの所有者とアプリ開発者の両方が調整して、アプリが自動的にURLスキームのデフォルトになることができるようになります。
.well-known/assetlinks.json
がアクセス可能であることを確認するために使用できるいくつかの場所を次に示します。これは、明確化ダイアログを削除するための重要な前提条件です。
https://developers.google.com/digital-asset-links/tools/generator
私の場合については、すべてのチェックにもかかわらず、曖昧性除去ダイアログは消えませんでした。 GitHubのFirebaseUI Auth( https://github.com/firebase/FirebaseUI-Android/tree/master/auth )も使用していて、firebase_web_Host
;を使用していることがわかりました。 Android:Host
で定義されている値以外のものが定義されている場合、Android:autoVerify
も失敗します。
問題は、firebase_web_Host
が私のコードの外のどこかに埋め込まれていたため、Android:autoVerify
が失敗した理由が明確ではなかったということです。見つける簡単な方法の1つは、アプリのインストール時にadb log
を確認することです。あなたは次のようなものを見るはずです
IntentFilterIntentSvc: Verification .. complete. Success:true. Failed hosts:.
Success:false
が表示されている場合は、どのホストに障害が発生したかが示されているので、どこを見ればよいかがわかります。
あなたがしたすべては正しいです別のWordの「アプリ」サンプルデータでhttpsとhttpを変更するだけですAndroid:scheme = "app" Android:Host = "com" Android:pathPrefix = "/ easy"
httpまたはhttpsは、ブラウザーを実行してから競合を引き起こすことを意味します
あなたのAndroidManife.xmlに入れて
<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="myAPP" />
</intent-filter>
例えば
<activity
Android:name="Activity"
Android:exported="true"
Android:windowSoftInputMode="adjustPan">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.DEFAULT" />
<category Android:name="Android.intent.category.LAUNCHER" />
</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:scheme="myAPP" />
</intent-filter>
</activity>
その後、スキーム「myAPP」のURLをクリックすると、アプリケーションが開きます。ユーザーリクエストはありません。
たとえばURL