搭载GMS的华为手机能否正常运行Trusted Web Activity应用?
华为GMS机型(P9/P30)TWA应用启动异常的解决方案
不少开发者在华为搭载GMS的P9、P30机型上遇到过TWA应用启动异常的问题,症状和你描述的一致——首次启动卡闪屏,需先打开Chrome才能正常启动且显示地址栏,但直接安装PWA无异常。以下是经过验证的解决方法:
检查Chrome版本兼容性:华为P9的Android系统版本偏老,确保设备上的Chrome版本不低于72(TWA最低支持版本),建议更新到最新稳定版。老版本Chrome在TWA首次启动时的进程初始化逻辑存在bug,会导致闪屏卡住。
调整bubblewrap启动配置:
- 打开
bubblewrap生成的twa-manifest.json,确认launchUrl为绝对HTTPS路径,无额外重定向; - 确保
host字段与你的PWA域名完全匹配,且网站HTTPS证书为正规CA颁发(避免证书信任问题导致验证失败); - 可尝试添加
"enableNotifications": false(若无需通知功能),减少启动时的初始化项。
- 打开
验证Digital Asset Links配置:
- 确认网站根目录下的
/.well-known/assetlinks.json文件正确关联了Google Play应用的包名和签名指纹; - 手动清除Chrome的网站缓存和数据后重新测试,华为GMS环境下可能存在资产链接缓存未更新的情况。
- 确认网站根目录下的
解除华为后台进程限制:
- 给TWA应用和Chrome开启「允许后台活动」权限:设置→应用和服务→应用管理→对应应用→电池→允许后台活动;
- 将TWA应用和Chrome加入系统「受保护应用」列表,避免启动时进程被系统强制回收。
修改AndroidManifest启动属性:
- 打开bubblewrap生成的Android项目中的
AndroidManifest.xml,找到TWA对应的<activity>标签; - 将
launchMode从默认的singleTask改为singleTop,或添加android:alwaysRetainTaskState="true"属性,优化启动时的进程状态管理。
- 打开bubblewrap生成的Android项目中的
备选方案:若以上方法无效,可尝试使用
custom-tabs-client库自定义TWA启动逻辑,或暂时引导用户通过Chrome菜单安装PWA(仅作为临时替代)。
内容的提问来源于stack exchange,提问作者Lukas Helebrandt
相关产品推荐
相关产品推荐

