有没有办法在 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!