Android 导航组件打开 url
Android navigation component open url
我有在浏览器中打开 URL 的简单代码:
startActivity(Intent(
Intent.ACTION_VIEW, Uri.parse(resources.getString(R.string.application_url))
))
如何将其转换为导航组件项?
我是否需要为此构建 custom navigator,或者导航组件针对这种情况内置了一些东西?
我明白了,对于这个简单的案例,不需要自定义导航器,您只需要创建导航端点:
<activity
android:id="@+id/navigation_endpoint_id"
app:action="android.intent.action.VIEW"
app:data="@string/application_url"/>
如果您使用的是导航抽屉,则可以像这样以编程方式进行设置。这样您就可以为特定的导航项设置自定义功能,而不会失去导航图的优势
navigationView.setNavigationItemSelectedListener {item->
drawerLayout.closeDrawer(GravityCompat.START)
when(item.itemId){
R.id.navigation_rate -> {
startActivity(Intent(
Intent.ACTION_VIEW, Uri.parse(resources.getString(R.string.app_playstore_url))
))
return@setNavigationItemSelectedListener true
}
else -> NavigationUI.onNavDestinationSelected(item, navController)
}
}
对于Dynamic Uri,我们可以这样传递数据:
<activity
android:id="@+id/whatsappRedirectionActivity"
app:action="android.intent.action.VIEW"
app:dataPattern="https://wa.me/{number}">
<argument
android:name="number"
app:argType="string" />
</activity>
这需要包含到您要重定向的导航图中。使用它我们也可以使用 safeargs 操作。
我有在浏览器中打开 URL 的简单代码:
startActivity(Intent(
Intent.ACTION_VIEW, Uri.parse(resources.getString(R.string.application_url))
))
如何将其转换为导航组件项?
我是否需要为此构建 custom navigator,或者导航组件针对这种情况内置了一些东西?
我明白了,对于这个简单的案例,不需要自定义导航器,您只需要创建导航端点:
<activity
android:id="@+id/navigation_endpoint_id"
app:action="android.intent.action.VIEW"
app:data="@string/application_url"/>
如果您使用的是导航抽屉,则可以像这样以编程方式进行设置。这样您就可以为特定的导航项设置自定义功能,而不会失去导航图的优势
navigationView.setNavigationItemSelectedListener {item->
drawerLayout.closeDrawer(GravityCompat.START)
when(item.itemId){
R.id.navigation_rate -> {
startActivity(Intent(
Intent.ACTION_VIEW, Uri.parse(resources.getString(R.string.app_playstore_url))
))
return@setNavigationItemSelectedListener true
}
else -> NavigationUI.onNavDestinationSelected(item, navController)
}
}
对于Dynamic Uri,我们可以这样传递数据:
<activity
android:id="@+id/whatsappRedirectionActivity"
app:action="android.intent.action.VIEW"
app:dataPattern="https://wa.me/{number}">
<argument
android:name="number"
app:argType="string" />
</activity>
这需要包含到您要重定向的导航图中。使用它我们也可以使用 safeargs 操作。