private fun saveBookmark(intent: Intent) {
if (Intent.ACTION_SEND == intent.action) {
val pageUrl = intent.getStringExtra(Intent.EXTRA_STREAM)
?: intent.getStringExtra(Intent.EXTRA_TEXT)
if (pageUrl != null && Uri.parse(pageUrl).scheme!!.startsWith("http")) {
// TODO something with the URL
} else {
// TODO you did not get a URL, so show an error or something
}
}
}
2条答案
按热度按时间uz75evzq1#
我假设您正在寻找创建一个应用程序来接收来自浏览器的链接,其中用户使用浏览器中的共享菜单选项(或工具栏按钮或其他)。
一般来说,要做到这一点,您需要实现一个支持
ACTION_SEND
协议的Activity
。首先,您需要在清单中的
<activity>
中添加一个<intent-filter>
,说明您支持ACTION_SEND
的纯文本格式:然后,在您的活动中,您可以获得
ACTION_SEND
Intent
和URL。粗略地说,这将是:可以从两个位置调用
saveBookmark()
:onCreate()
,传入getIntent()
的值onNewIntent()
,将获得的Intent
作为参数传递给onNewIntent()
您可以在the documentation中了解更多信息。
o75abkj42#
你需要为你的应用程序寻找一个后端系统。你应该选择Firebase。使用Firebase身份验证进行用户登录,使用Firebase Firestore/Realtime Database进行链接同步。
显然,您需要一个基于Web的客户端来共享浏览器中指向应用程序的链接。