【问题标题】:Launching another activity from a Trusted Web Activity (TWA)从受信任的 Web 活动 (TWA) 启动另一个活动
【发布时间】:2020-09-11 19:25:44
【问题描述】:

我在尝试通过意图 URI 从 TWA 启动另一个活动时遇到问题。 "intent://#Intent;scheme=subscriptionschemetwa;package=com.package.www.twa;end" 当然,包名在现实中是唯一的。

我玩过它们,在 URI 中添加了主机、动作、附加内容等,但没有任何效果。

由于我是原生开发的新手,我希望能得到一些帮助。 该应用程序本身尚未在 Google Play 上公开(仅限内部),它使用 Bubblewrap 进行签名和打包,并通过 adb 安装。 Intent URI 的回退在将我带到商店的内部列表的意义上确实有效,但我不知道为什么没有启动活动。

XML 块:

        <activity android:name="SubscriptionActivity">
            <intent-filter>
                <data
                    android:host="com.package.www.twa"
                    android:scheme="subscriptionschemetwa" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
        </activity>

Activity 与批量创建相同,添加了一个日志以检查它是否曾经进入该方法。它没有。

class SubscriptionActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        println("------test------")
        setContentView(R.layout.activity_subscription)
    }
}

单击指向意图 URI 的链接后的 logcat 日志似乎显示根本没有尝试启动活动,而是直接进入商店。 我可以直接通过 adb shell 运行活动就好了。

09-11 20:57:30.419  1595 25814 I CLP     : startActivity sender check.  com.android.chrome to Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=market://details?id=com.package.www.twa&referrer=com.android.chrome flg=0x10000000 pkg=com.android.vending cmp=com.android.vending/com.google.android.finsky.activities.MarketDeepLinkHandlerActivity (has extras) }
09-11 20:57:30.607  9562  9804 I AppIconSolution: load=com.package.www.twa, bg=96-96, dr=132-132, forDefault=false, density=0
09-11 20:57:30.611  9562  9804 I AppIconSolution: load=com.package.www.twa-theme2, bg=96-96, dr=132-132, tarScale=0.65, relScale=0.48, mask=false
09-11 20:57:30.786 22165 22165 I Finsky  : [2] hze.a(11): Selecting account [xxxxxxxxxxxxxxxxxxxxxxxxxx] for package com.package.www.twa. overriding=[true]
09-11 20:57:30.794 22165 22165 I Finsky  : [2] hze.a(11): Selecting account [xxxxxxxxxxxxxxxxxxxxxxxxxx] for package com.package.www.twa. overriding=[true]
09-11 20:57:30.917 22165 22200 I Finsky  : [842] lge.run(418): Dropped referrer for com.package.www.twa because dropped_already_installed
09-11 20:57:30.934 22165 22165 I Finsky  : [2] hze.a(11): Selecting account [xxxxxxxxxxxxxxxxxxxxxxxxxx] for package com.package.www.twa. overriding=[true]
09-11 20:57:30.940 22165 22165 I Finsky  : [2] hze.a(11): Selecting account [xxxxxxxxxxxxxxxxxxxxxxxxxx] for package com.package.www.twa. overriding=[true]

感谢您的任何意见,我已经研究了好几天了,但我无法理解它。

【问题讨论】:

    标签: android android-intent trusted-web-activity twa bubblewrap


    【解决方案1】:

    所以看起来意图 URI 是错误的。实际上,我使用我认为已弃用的通过意图 URI 调用活动的方式成功地启动了活动而没有问题。但是,嘿,它有效。 我最终使用的 URI 是:

    subscriptionschemetwa://www.package.com
    

    或更笼统的说法

    scheme://host
    

    希望它可以帮助人们避免像我一样浪费时间:D

    【讨论】:

      猜你喜欢
      • 2021-12-08
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      相关资源
      最近更新 更多