从受信任的 Web Activity (TWA) 启动另一个 activity
Launching another activity from a Trusted Web Activity (TWA)
我在尝试通过 intent URI 从 TWA 启动另一个 activity 时遇到问题。
"intent://#Intent;scheme=subscriptionschemetwa;package=com.package.www.twa;end"
包名在现实中当然是唯一的。
我试过它们,在 URI 中添加了 host、action、extras 等,但没有任何效果。
由于我是本机开发的新手,我希望得到一些帮助。
该应用程序本身尚未在 Google Play 上公开可用(仅在内部),它已使用 Bubblewrap 进行签名和打包,并通过 adb 安装。
意图 URI 的回退在将我带到商店的内部列表的意义上确实有效,但我不知道为什么 activity 没有启动。
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和bulk create一样,只是增加了一个log,只是为了检查它是否曾经进入过这个方法。它没有。
class SubscriptionActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
println("------test------")
setContentView(R.layout.activity_subscription)
}
}
单击指向意图 URI 的 link 后的 logcat 日志似乎显示根本没有尝试启动 activity,而是直接转到店铺。
我可以直接通过adb 运行 activity 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]
感谢任何意见,我已经研究了好几天了,我就是无法理解它。
看来intent URI是错误的。实际上,我成功地启动了 activity,使用我认为已弃用的方式通过 intent URI 调用活动,没有出现问题。但是,嘿,它有效。
我最终使用的 URI 是:
subscriptionschemetwa://www.package.com
或更笼统的说法
scheme://host
希望它能帮助其他人避免像我一样浪费时间 :D
我在尝试通过 intent URI 从 TWA 启动另一个 activity 时遇到问题。
"intent://#Intent;scheme=subscriptionschemetwa;package=com.package.www.twa;end"
包名在现实中当然是唯一的。
我试过它们,在 URI 中添加了 host、action、extras 等,但没有任何效果。
由于我是本机开发的新手,我希望得到一些帮助。 该应用程序本身尚未在 Google Play 上公开可用(仅在内部),它已使用 Bubblewrap 进行签名和打包,并通过 adb 安装。 意图 URI 的回退在将我带到商店的内部列表的意义上确实有效,但我不知道为什么 activity 没有启动。
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和bulk create一样,只是增加了一个log,只是为了检查它是否曾经进入过这个方法。它没有。
class SubscriptionActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
println("------test------")
setContentView(R.layout.activity_subscription)
}
}
单击指向意图 URI 的 link 后的 logcat 日志似乎显示根本没有尝试启动 activity,而是直接转到店铺。 我可以直接通过adb 运行 activity 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]
感谢任何意见,我已经研究了好几天了,我就是无法理解它。
看来intent URI是错误的。实际上,我成功地启动了 activity,使用我认为已弃用的方式通过 intent URI 调用活动,没有出现问题。但是,嘿,它有效。 我最终使用的 URI 是:
subscriptionschemetwa://www.package.com
或更笼统的说法
scheme://host
希望它能帮助其他人避免像我一样浪费时间 :D