2016-04-15 34 views
0

私はGoogle guidelinesの後にAndroidアプリでhttpsデインターリンクを実装しました。Androidアプリhttps deeplinkとChromeブラウザ

ユーザーがChromeブラウザを開いてmycompanyに関連するものを検索してリンクをクリックすると、OSは自分のアプリケーションまたはブラウザの選択を求めるメッセージを表示します。また、誰かがメールやメッセンジャーアプリでリンクを送信した場合、ユーザーがクリックすると、OSはアプリ/ブラウザの選択も促します。ユーザーがアドレスバーにChromeと種類を開くと

  1. www.mycompany.com、OSはアプリ/ブラウザの間で選択するように要求しません、

    はしかし、私は次のような問題を参照してくださいそれは単にブラウザで開きます。

  2. それはアプリハンドルというリンクをクリックしたときに、ユーザがwww.mycompany.comのホームWebページをナビゲートするブラウザになったら(例えば。https://www.mycompany.com/product/1234)OS をするわけではないアプリとブラウザの間で選択するためのプロンプト。

  3. 最悪の問題は、ユーザーがアプリケーションが処理しないリンク(例:https://www.mycompany.com/not-handled-path)をクリックすると、対応するWebページが期待どおりに開きますが、ユーザーがリンクをクリックするとこのWebページが開きます(例えば、https://www.mycompany.com/product/1234)OS WILL app/browserの間で選択するように促す。

ご覧のとおり、動作が一貫していないようです。 私は、予想される動作は、常にアプリケーション/ブラウザの間で決定するか、または常にユーザーがウェブサイトをナビゲートできるようにすることであると言います。

私が何か誤解した場合は、何かアドバイスを歓迎します。

これは私の派遣活動によって処理されたインテントフィルタです:事前に

<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="https"/> 
    <data android:host="www.mycompany.com"/> 
    <data android:pathPattern="/" /> 
    <data android:pathPattern="/product.*" /> 
    <data android:pathPattern="/list.*" /> 
    <data android:pathPattern="/stores.*" /> 
    <data android:pathPattern="/brands.*" /> 
</intent-filter> 

感謝。

EDIT:

アドレスwww.mycompany.comホームウェブページに入るの書き込み:要するに

これは矛盾です。このウェブページにはhttps://www.mycompany.com/product/123へのリンクがあります。クリックすると製品詳細のWebページに入ります(OSはアプリケーションまたはブラウザで開くように促されません)。

www.mycompany.com/not-handled-pathのアドレスをWebページに入力すると、このWebページにはhttps://www.mycompany.com/product/123へのリンクもありますが、それをクリックすると私の驚きのOSにアプリケーションやブラウザで開くように求められます。

答えて

0

私が知る限り、あなたの行動は予想通りです。 1)ブラウザにサイトを開くよう依頼します。 OSにブラウザとアプリケーションのどちらかを選択させるように頼むが、ブラウザに尋ねた。

2)私はそれをwhisの方法で使用し、うまくいきました。

3)私はそれに関する問題はありません。 OSには1つのオプションしかありませんので、ブラウザを使用します。問題が見つかった場合は、未処理のリンクを処理してください。

+0

でも、アプリケーションによって処理される同じハイパーリンクをクリックすると、OSがプロンプト(箇条書き2)と時には(箇条書き3)を表示しないのはなぜですか?これは私に矛盾しているようです。 – fernandospr

+0

私はただ再スライスしました。 に変更してみてください。たぶんドットが問題です。 –

+0

ありがとうございますが動作しません。 – fernandospr

0

私のアプリで作業しているときに同様の問題が発生し、予想される動作を明確に記載したドキュメントが見つかりませんでした。その後、私はchromium sourceを調べて、何が起きているのか把握します。同じホスト内を移動するときにクロムの実装ごとに、ソースURLまたは参照URLを処理できるアプリに比べて、ターゲットURLを処理できる新しいアプリがある場合は、Intent App Chooserが表示されます。あなたは次のようである見るものの説明上記の光で

  1. ユーザー明示的にはあなたがいる
  2. コード内の特定のチェックを入れているブラウザのウェブサイトを閲覧し、このクロムを称えるために選びましたアプリケーションのURLで処理された別のURLにナビゲートするため、OSのポップアップは表示されません。
  3. 処理されていないアプリのURLから処理されたアプリにナビゲートしています-url。 Chromeには、古いurlを処理するアプリケーションと比較してターゲットURLを処理できる新しいアプリケーションがあることがわかります。したがって、ユーザーに決定させるOSのポップアップが表示されます。
関連する問題