2017-05-29 9 views
1

URL http://javaexample.com/#/topicsは有効なURLですか?なぜアンドロイドは、パスに#を持つディープリンクURLを処理しません

私が使用してアプリで上記のURLをディープリンクしようとしています:

<intent-filter android:label="@string/app_name"> 
      <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="javaexample.com" 
       android:pathPrefix="/#/topics" /> 
     </intent-filter> 

が、メッセージを投げ、端末を - テント{行為= android.intent.actionを解決することができません開始していない

活動、 .VIEW dat = http://javaexample.com/ ...

はURLですhttp://javaexample.com/#/topicsはパスに#がある場合、有効なURLではありませんか?

答えて

2

URLの#は、深いリンク基準には使用できないfragment componentの先頭を示します。 のフラグメントを構造化しても、人間の目の通常のURLパスのように、のように見えますが、コンピュータはこれをこのようには読んでいません。

パスの前に#文字を含まないようにURLを再フォーマットする必要があります。

+0

単一ページのWebアプリケーションは、フラグメントIDに基づいて表示するパーツ/フラグメントを決定します。 ハイパーリンクからウェブアプリまたはブラウザへのディープリンク(アプリがモバイルにインストールされていない場合)は正しく動作しますが、アプリケーションがモバイルにインストールされていると、パス内に同じURLでディープリンクを達成する方法があります。私たちは、モバイルのための代わりのディープリンクURLを提供する必要がありますか?同様に - モバイルアプリの場合は別のURLを使用します。そうでなければメインURLを使用しますか?どのように代替URLの実装を達成できますか? – Praveen

+0

はい、これはその方法の1つです。あなたのディープリンクのURLがあなたのWebアプリケーションから完全に分離されているので、[Branch.io](https://branch.io)(完全公開:私は支店チームにいる)がそれを助けることができます。また、別のURL構造を使用するようにWebアプリケーションを再加工することもできます。 '#'が動作しない理由の詳細については、[here](https://stackoverflow.com/questions/16451162/intent-filter-pathprefix-with-not-working)を参照してください。 –

関連する問題