Jetpack Compose 中的 Sharesheet

12
我该如何在Jetpack Compose中使用Android的分享表单来分享内容?

enter image description here


1
你可以在 @Composable 方法中启动一个 activity 吗? - Tuan Chau
2个回答

33
@Composable 中,您可以以标准方式使用 Intent。例如:
val sendIntent: Intent = Intent().apply {
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_TEXT, "This is my text to send.")
    type = "text/plain"
}
val shareIntent = Intent.createChooser(sendIntent, null)
val context = LocalContext.current

Button(onClick = {
    context.startActivity(shareIntent)
}){
    Text("Share")
}

输入图片说明


1
啊...那应该很明显的 ‍♂️ 我想在包括使用Compose导航进行导航等所有方面都有很大不同的情况下,我认为会有一种新的/不同的方式...谢谢 - jacoballenwood
你能否更新你的解决方案,以便与问题中的图标相同? - tiagocarvalho92
请问您能否给我一个想法,如何将文本从另一个应用程序传输到我的应用程序中的TextFieald中进行处理? - Youn Tivoli

1
在Jetpack Compose的Sharesheet中,您可以通过传递上下文来调用下面的函数。(如果应用程序尚未发布,您可以省略商店URL)
    fun shareAppPlayStoreUrl(context: Context){
    val sendIntent: Intent = Intent().apply {
        action = Intent.ACTION_SEND
        putExtra(Intent.EXTRA_TEXT, "Check out this awesome app\n "+"https://play.google.com/store/apps/details?id="+context.applicationInfo.packageName)
        type = "text/plain"
    }
    val shareIntent = Intent.createChooser(sendIntent, null)
    context.startActivity(shareIntent)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接