我在尝试通过intent URI从TWA启动另一个活动时遇到问题。"intent://#Intent;scheme=subscriptionschemetwa;package=com.package.www.twa;end"
当然,包裹的名字在现实中是独一无二的。
我和他们玩过,在URI中添加了主机、动作、临时演员等,但没有任何效果。
由于我是本地开发的新手,我希望能得到一些帮助。该应用程序本身还没有在Google Play上公开(仅在内部(,它是用Bubblewrap签名和打包的,并通过adb安装。intent URI的回退确实有效,因为它将我带到Store的内部列表,但我不知道为什么活动没有启动。
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>
"活动"与批量创建相同,只是添加了一个日志来检查它是否进入了方法。事实并非如此。
class SubscriptionActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
println("------test------")
setContentView(R.layout.activity_subscription)
}
}
单击指向intent 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]
任何意见都很感激,我已经在这上面呆了好几天了,我简直无法理解。
所以intent URI似乎是错误的。实际上,我使用了一种我认为不推荐的通过intent URI调用活动的方式,成功地启动了活动,没有出现任何问题。但是,嘿,它是有效的。我最终使用的URI是:
subscriptionschemetwa://www.package.com
或者更一般地说
scheme://host
希望它能帮助人们避免像我一样浪费时间:D