新しいナビゲーション コンポーネント API v1.0.0-alpha05 を使用してディープリンク機能を実装しようとしていますが、問題が発生しています。
Android Studio 3.3 Canary 7 の使用
私の navigation_graph.xml の一部
<fragment
android:id="@+id/noteDetailFragment"
android:name="com.myapp.notes.notedetail.NoteDetailFragment"
android:label="@string/label_note_detail"
tools:layout="@layout/note_detail_fragment">
<argument
android:name="noteId"
android:defaultValue="0"
app:argType="integer" />
<action
android:id="@+id/action_noteDetail_to_editNote"
app:destination="@id/editNoteFragment" />
<deepLink
android:id="@+id/noteDetailDeepLink"
app:uri="notesapp://notes/{noteId}" />
</fragment>
AndroidManifest.xml には以下が含まれます。
<activity android:name=".presentation.MainActivity">
<nav-graph android:value="@navigation/navigation_graph" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
ディープリンクをテストしていますadb shell am start -a android.intent.action.VIEW -d "notesapp://notes/2" com.myapp.notes
はnoteId
どちらにも存在しません(どちらのNoteDetailFragmentArgs.fromBundle(arguments).noteId
場合もarguments?.getInt("noteId", 0)
デフォルト値の0
が返されます)。
バンドルを印刷すると、そこにあることがわかります。
[{android-support-nav:controller:deepLinkIntent=Intent { act=android.intent.action.VIEW dat=notesapp://notes/2 flg=0x1000c000 pkg=com.mynotes.notes cmp=com.mynotes.notes.presentation.MainActivity }, noteId=2}]
ディープリンクの URI が次の場合、同じ問題が発生します。 http://www.mynotes.com/notes/2
noteId
ディープリンク時に にアクセスするにはどうすればよいですか? ありがとう!