有没有办法在 Compose 脚手架的 TopAppBar 中单击 IconButton 来打开网页?
Is there a way to open a webpage on click of IconButton from the TopAppBar in a Compose Scaffold?
我是 Jetpack 的新手,尤其是 Compose,我正在努力寻找一种方法来打开网站或通过单击位于 TopAppBar 中的 IconButton 来启动 Chrome 浏览器。我应该通过调用我可以编写的“linkToWebpage()”函数,还是简单地与 IconButton 的 onClick = {} 函数内联来执行此操作?我该怎么做?我正在使用 Navigation 库进行应用内导航并取得了巨大成功,但我很难加载网页。请注意,为了便于阅读,我省略了一些代码。感谢您的宝贵时间和帮助!
@Composable
fun HomeScreen() {
val navController = rememberNavController()
...
Scaffold(
topBar = {
TopAppBar(
title = {},
navigationIcon =
{
IconButton(onClick = { linkToWebpage() }) {
Icon(Icons.Filled.Favorite)
}
}
,
// TODO get appbar color from global theme.
backgroundColor = Color.DarkGray,
)
},
bottomBar = {
...
}
) {
NavHost(navController, startDestination = Screen.Courses.route) {
...
}
}
哇,我在这上面花了太多时间,但能够弄清楚如何开始并 activity 从可组合函数中打开网络浏览器。通过 'linkToWebPage' 函数传递上下文 via
val context = ContextAmbient.current
然后以 this 作为参数调用函数
IconButton(onClick = { linkToWebpage(context) }) {
Icon(Icons.Filled.Favorite)
}
然后我就可以在下面编写的函数中启动 activity
fun linkToWebpage(context: Context) {
//val context = ContextAmbient.current
val openURL = Intent(Intent.ACTION_VIEW)
openURL.data = Uri.parse("https://www.example.com/")
startActivity(context, openURL, null )
}
Hope this is helpful to someone!
我是 Jetpack 的新手,尤其是 Compose,我正在努力寻找一种方法来打开网站或通过单击位于 TopAppBar 中的 IconButton 来启动 Chrome 浏览器。我应该通过调用我可以编写的“linkToWebpage()”函数,还是简单地与 IconButton 的 onClick = {} 函数内联来执行此操作?我该怎么做?我正在使用 Navigation 库进行应用内导航并取得了巨大成功,但我很难加载网页。请注意,为了便于阅读,我省略了一些代码。感谢您的宝贵时间和帮助!
@Composable
fun HomeScreen() {
val navController = rememberNavController()
...
Scaffold(
topBar = {
TopAppBar(
title = {},
navigationIcon =
{
IconButton(onClick = { linkToWebpage() }) {
Icon(Icons.Filled.Favorite)
}
}
,
// TODO get appbar color from global theme.
backgroundColor = Color.DarkGray,
)
},
bottomBar = {
...
}
) {
NavHost(navController, startDestination = Screen.Courses.route) {
...
}
}
哇,我在这上面花了太多时间,但能够弄清楚如何开始并 activity 从可组合函数中打开网络浏览器。通过 'linkToWebPage' 函数传递上下文 via
val context = ContextAmbient.current
然后以 this 作为参数调用函数
IconButton(onClick = { linkToWebpage(context) }) {
Icon(Icons.Filled.Favorite)
}
然后我就可以在下面编写的函数中启动 activity
fun linkToWebpage(context: Context) {
//val context = ContextAmbient.current
val openURL = Intent(Intent.ACTION_VIEW)
openURL.data = Uri.parse("https://www.example.com/")
startActivity(context, openURL, null )
}
Hope this is helpful to someone!