【问题标题】:Opening/starting a specific Android activity passing an intent parameter from the browser打开/启动从浏览器传递意图参数的特定 Android 活动
【发布时间】:2018-11-10 16:55:56
【问题描述】:

我正在开发一个 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>

但是如何将意图数据作为参数传递?

我尝试添加应用链接。当我点击测试应用链接时不起作用

【问题讨论】:

    标签: android android-intent kotlin


    【解决方案1】:

    你有 4 个选项来实现你想要的:

    1. 深层链接
    2. Android 应用链接
    3. Firebase 动态链接
    4. Firebase 应用索引

    请参阅this post 以查看有关它们的更多说明。

    在最简单的方法(深层链接)中,您可以将您的 Activity 作为特定模式 URLs 的处理程序引入,并将所需的参数作为 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 sn-p:

    <a href="myapp://zxing?image_url=some_image_url"> Take a QR code </a>
    

    【讨论】:

    • 我尝试添加应用链接。即使我设置了正确的详细信息并使用正确的详细信息测试链接,也无法正常工作。请检查已编辑的问题?
    • 好的,您的问题可以通过简单的深层链接解决。我已经更新了答案。
    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2021-05-21
    • 2012-07-23
    • 2012-05-17
    • 2011-08-09
    • 2013-02-05
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多