{"id":1700,"date":"2022-12-28T11:38:00","date_gmt":"2022-12-28T03:38:00","guid":{"rendered":"https:\/\/badgameshow.com\/fly\/?p=1700"},"modified":"2022-12-28T11:38:00","modified_gmt":"2022-12-28T03:38:00","slug":"%e3%80%90jetpack%e3%80%91android-navigation-deeplink-%e8%88%87%e5%8f%83%e6%95%b8%e5%82%b3%e9%81%9e-%e4%b8%89-%e7%af%84%e4%be%8b","status":"publish","type":"post","link":"https:\/\/badgameshow.com\/fly\/%e3%80%90jetpack%e3%80%91android-navigation-deeplink-%e8%88%87%e5%8f%83%e6%95%b8%e5%82%b3%e9%81%9e-%e4%b8%89-%e7%af%84%e4%be%8b\/","title":{"rendered":"\u3010Jetpack\u3011Android Navigation DeepLink \u8207\u53c3\u6578\u50b3\u905e (\u4e09) \u7bc4\u4f8b"},"content":{"rendered":"<h1>\u3010Jetpack\u3011Android Navigation DeepLink \u8207\u53c3\u6578\u50b3\u905e (\u4e09) \u7bc4\u4f8b<\/h1>\n<h4>Android Jetpack Navigation \u662f\u4e00\u500b\u7d71\u4e00\u7684\u5c0e\u822a\u6846\u67b6\uff0c\u53ef\u4ee5\u8b93\u958b\u767c\u8005\u66f4\u5bb9\u6613\u5730\u5c07 Android \u7686\u5e38\u7528\u7684\u5c0e\u822a\u529f\u80fd\uff08\u5982\u529f\u80fd\u8868\u3001\u5806\u758a\u3001\u62bd\u5c5c\u548c\u5e95\u90e8\u5c0e\u822a\u7b49\uff09\u6dfb\u52a0\u5230\u61c9\u7528\u4e2d\u3002<\/h4>\n<h4>\u5b83\u70ba\u591a\u500b\u5c0e\u822a\u76ee\u7684\u5730\u63d0\u4f9b\u4e00\u81f4\u7684 API\uff0c\u4e26\u53ef\u4ee5\u8b93\u958b\u767c\u8005\u5c07\u5c0e\u822a\u884c\u70ba\u901a\u7528\u65bc\u55ae\u500b\u6216\u591a\u500b\u6d3b\u52d5\u3002<\/h4>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/developer.android.com\/static\/images\/guide\/navigation\/nav-editor-2x.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/developer.android.com\/static\/images\/guide\/navigation\/nav-editor-2x.png\" alt=\"\" \/><\/a><\/p>\n<hr \/>\n<h4>\u6587\u7ae0\u76ee\u9304<\/h4>\n<ol>\n<li><a href=\"#a\">Navigation DeepLink \u914d\u7f6e<\/a><\/li>\n<li><a href=\"#b\">Navigation DeepLink Args \u53d6\u503c<\/a><\/li>\n<li><a href=\"#c\">Navigation DeepLink Bundle \u53d6\u503c<\/a><\/li>\n<li><a href=\"#d\">Navigation Fragment \u50b3\u905e\u53c3\u6578 Args \u53d6\u503c<\/a><\/li>\n<li><a href=\"#e\">Navigation Fragment \u50b3\u905e\u53c3\u6578 Bundle \u53d6\u503c<\/a><\/li>\n<li><a href=\"#f\">Developer Documents Navigation<\/a><\/li>\n<\/ol>\n<hr \/>\n<p><a id=\"a\"><\/a><\/p>\n<h4>1.Navigation DeepLink \u914d\u7f6e<\/h4>\n<h5>AndroidManifest.xml<\/h5>\n<pre data-language=XML><code class=\"language-markup line-numbers\">&lt;activity\n    android:name=\".MainActivity\"\n    android:exported=\"true\"\n    android:launchMode=\"singleInstance\"&gt;\n\n    &lt;nav-graph android:value=\"@navigation\/nav_graph\" \/&gt;\n\n&lt;\/activity&gt;\n<\/code><\/pre>\n<h5>nav_graph.xml<\/h5>\n<pre data-language=XML><code class=\"language-markup line-numbers\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;navigation xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:id=\"@+id\/nav_graph\"\n    app:startDestination=\"@id\/AFragment\"&gt;\n\n    &lt;fragment\n        android:id=\"@+id\/AFragment\"\n        android:name=\"com.example.jetpackdemo.AFragment\"\n        android:label=\"AFragment\"\n        tools:layout=\"@layout\/fragment_a\"&gt;\n\n        &lt;argument\n            android:defaultValue=\"init\"\n            android:name=\"key\"\n            app:argType=\"string\" \/&gt;\n\n        &lt;deepLink app:uri=\"app:\/\/fragment\/{key}\" \/&gt;\n    &lt;\/fragment&gt;\n&lt;\/navigation&gt;\n<\/code><\/pre>\n<p><a id=\"b\"><\/a><\/p>\n<h4>2.Navigation DeepLink Args \u53d6\u503c<\/h4>\n<h5>AFragment.kt<\/h5>\n<pre><code class=\"language-kotlin line-numbers\">class AFragment : Fragment(R.layout.fragment_a) {\n\n    private val args: AFragmentArgs by navArgs()\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        Log.e(\"key\", args.key)\n    }\n\n}\n<\/code><\/pre>\n<p><a id=\"c\"><\/a><\/p>\n<h4>3.Navigation DeepLink Bundle \u53d6\u503c<\/h4>\n<h5>AFragment.kt<\/h5>\n<pre><code class=\"language-kotlin line-numbers\">class AFragment : Fragment(R.layout.fragment_a) {\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        val argument = arguments?.getString(\"key\")\n        Log.e(\"key\", argument.toString())\n    }\n\n}\n<\/code><\/pre>\n<p><a id=\"d\"><\/a><\/p>\n<h4>4.Navigation Fragment \u50b3\u905e\u53c3\u6578 Args \u53d6\u503c<\/h4>\n<h5>\u53c3\u6578\u985e\u578b\u8868<\/h5>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2022\/12\/H4EYIMb.png\"><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2022\/12\/H4EYIMb.png\" alt=\"\" \/><\/a><\/p>\n<h5>nav_graph.xml<\/h5>\n<pre data-language=XML><code class=\"language-markup line-numbers\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;navigation xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:id=\"@+id\/nav_graph\"\n    app:startDestination=\"@id\/AFragment\"&gt;\n\n    &lt;fragment\n        android:id=\"@+id\/AFragment\"\n        android:name=\"com.example.jetpackdemo.AFragment\"\n        android:label=\"AFragment\"\n        tools:layout=\"@layout\/fragment_a\"&gt;\n\n        &lt;action\n            android:id=\"@+id\/action_AFragment_to_BFragment\"\n            app:destination=\"@id\/BFragment\" \/&gt;\n\n    &lt;\/fragment&gt;\n\n    &lt;fragment\n        android:id=\"@+id\/BFragment\"\n        android:name=\"com.example.jetpackdemo.BFragment\"\n        android:label=\"BFragment\"\n        tools:layout=\"@layout\/fragment_b\"&gt;\n\n        &lt;argument\n            android:name=\"number\"\n            android:defaultValue=\"1\"\n            app:argType=\"integer\" \/&gt;\n\n    &lt;\/fragment&gt;\n&lt;\/navigation&gt;\n<\/code><\/pre>\n<h5>AFragment.kt<\/h5>\n<pre><code class=\"language-kotlin line-numbers\">class AFragment : Fragment(R.layout.fragment_a) {\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        val binding = FragmentABinding.bind(view)\n\n        binding.next.setOnClickListener {\n            val action = AFragmentDirections.actionAFragmentToBFragment(100)\n            findNavController().navigate(action)\n        }\n    }\n\n}\n<\/code><\/pre>\n<h5>BFragment .kt<\/h5>\n<pre><code class=\"language-kotlin line-numbers\">class BFragment : Fragment(R.layout.fragment_b) {\n\n    private val safeArgs: BFragmentArgs by navArgs()\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        Log.e(\"number\", safeArgs.number.toString())\n    }\n\n}\n<\/code><\/pre>\n<p><a id=\"e\"><\/a><\/p>\n<h4>5.Navigation Fragment \u50b3\u905e\u53c3\u6578 Bundle \u53d6\u503c<\/h4>\n<h5>nav_graph.xml<\/h5>\n<pre data-language=XML><code class=\"language-markup line-numbers\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;navigation xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:id=\"@+id\/nav_graph\"\n    app:startDestination=\"@id\/AFragment\"&gt;\n\n    &lt;fragment\n        android:id=\"@+id\/AFragment\"\n        android:name=\"com.example.jetpackdemo.AFragment\"\n        android:label=\"AFragment\"\n        tools:layout=\"@layout\/fragment_a\"&gt;\n\n        &lt;action\n            android:id=\"@+id\/action_AFragment_to_BFragment\"\n            app:destination=\"@id\/BFragment\" \/&gt;\n\n    &lt;\/fragment&gt;\n\n    &lt;fragment\n        android:id=\"@+id\/BFragment\"\n        android:name=\"com.example.jetpackdemo.BFragment\"\n        android:label=\"BFragment\"\n        tools:layout=\"@layout\/fragment_b\"&gt;\n\n    &lt;\/fragment&gt;\n&lt;\/navigation&gt;\n<\/code><\/pre>\n<h5>AFragment.kt<\/h5>\n<pre><code class=\"language-kotlin line-numbers\">class AFragment : Fragment(R.layout.fragment_a) {\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        val binding = FragmentABinding.bind(view)\n\n        binding.next.setOnClickListener {\n            val bundle = bundleOf(\"number\" to 100)\n            findNavController().navigate(R.id.BFragment, bundle)\n        }\n    }\n\n}\n<\/code><\/pre>\n<h5>BFragment.kt<\/h5>\n<pre><code class=\"language-kotlin line-numbers\">class BFragment : Fragment(R.layout.fragment_b) {\n\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        val number = arguments?.getInt(\"number\")\n        Log.e(\"number\", number.toString())\n    }\n\n}\n<\/code><\/pre>\n<p><a id=\"f\"><\/a><\/p>\n<h4>6.Developer Documents Navigation<\/h4>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/developer.android.com\/guide\/navigation\" title=\"Open in Documents Navigation\" target=\"_blank\" rel=\"noopener\">Open in Documents Navigation<\/a><\/p>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>\u3010Jetpack\u3011Android Navigation DeepLink \u8207\u53c3\u6578\u50b3\u905e (\u4e09) \u7bc4\u4f8b Andro &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[106],"tags":[13,107,226],"class_list":["post-1700","post","type-post","status-publish","format-standard","hentry","category-jetpack","tag-android","tag-jetpack","tag-navigation"],"_links":{"self":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/1700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/comments?post=1700"}],"version-history":[{"count":1,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/1700\/revisions"}],"predecessor-version":[{"id":1702,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/1700\/revisions\/1702"}],"wp:attachment":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/media?parent=1700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/categories?post=1700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/tags?post=1700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}