我正在开发一个Android应用程序和一个网站。我现在想做的是,当用户单击链接时,我想从浏览器中打开Android应用程序的特定活动。
这是我的Android活动课程
class SphereViewerActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sphere_viewer)
intent.getStringExtra("image_url")
}
}
正如您在我的代码中看到的那样,我正在从浏览器获取image_url参数。是否可以通过JavaScript或浏览器传递参数来打开该活动?
我找到了解决方案,就是要有这样的链接
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end"> Take a QR code </a>
但是如何传递意图数据作为参数?
我尝试添加应用程序链接。单击“测试应用程序链接”时无法正常工作
答案 0 :(得分:2)
您有4种选择来实现所需的目标:
请参阅this post,以了解有关它们的更多说明。
在最简单的方法(深层链接)中,您可以将Activity
引入特定模式URL
的处理程序中,并将所需的参数作为URL
的查询参数进行传递。
AndroidManifest.xml
<activity android:name=".SphereViewerActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "myapp://zxing" -->
<data android:host="zxing" />
<data android:scheme="myapp" />
</intent-filter>
</activity>
SphereViewerActivity.kt
class SphereViewerActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sphere_viewer)
if (intent != null && intent.action == Intent.ACTION_VIEW) {
intent.data?.apply{
if (getQueryParameter("image_url") != null && getQueryParameter("image_url").isNotEmpty()) {
val imageUrl = data.getQueryParameter ("image_url") as String
// do what you want to do with imageUrl
}
}
}
}
}
您的html代码段:
<a href="myapp://zxing?image_url=some_image_url"> Take a QR code </a>