如何通过 android deep link 从邮件中打开片段?
How to open a fragment through android deep link from mail?
我需要在我的应用程序中打开一个特定的片段,点击电子邮件应用程序中的确认 link。是否可能,如果可能,我可以从这个 link 接收信息吗?
首先,您需要将清单中的这些代码添加到 <activity/>
(For more information):
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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:host="@string/APP_LINKS_URL"
android:scheme="http" />
</intent-filter>
<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:host="@string/APP_LINKS_URL"
android:scheme="https" />
</intent-filter>
</activity>
@string/APP_LINKS_URL
is url address like some.address.com
(For more info)
之后,通过单击 link,您的 activity 将以此 link(如 Uri:intent.data
)作为 Intent 对象的开头。基于此 link 您可以打开或导航到应用中的任何片段。要在屏幕之间导航,您可以使用导航组件 navigation-deep-link.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
//...
if (intent.data?.toString()?.contains(getString(R.string.APP_LINKS_URL)) == true) {
//your logic to navigate to specify fragment
}
}
您可以从这个 link (Uri) 中获取信息:intent.data
我需要在我的应用程序中打开一个特定的片段,点击电子邮件应用程序中的确认 link。是否可能,如果可能,我可以从这个 link 接收信息吗?
首先,您需要将清单中的这些代码添加到 <activity/>
(For more information):
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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:host="@string/APP_LINKS_URL"
android:scheme="http" />
</intent-filter>
<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:host="@string/APP_LINKS_URL"
android:scheme="https" />
</intent-filter>
</activity>
@string/APP_LINKS_URL
is url address likesome.address.com
(For more info)
之后,通过单击 link,您的 activity 将以此 link(如 Uri:intent.data
)作为 Intent 对象的开头。基于此 link 您可以打开或导航到应用中的任何片段。要在屏幕之间导航,您可以使用导航组件 navigation-deep-link.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
//...
if (intent.data?.toString()?.contains(getString(R.string.APP_LINKS_URL)) == true) {
//your logic to navigate to specify fragment
}
}
您可以从这个 link (Uri) 中获取信息:intent.data