TWA - 数字资产链接正常,但地址栏仍然可见



我开发了一个渐进式网络应用程序,我想将其作为受信任的网络活动发布在Play商店中。 这是 https://www.bagnoadriatico.it

遵循本指南 https://developers.google.com/web/updates/2019/02/using-twa

我从 https://github.com/GoogleChromeLabs/svgomg-twa

我更改了配置

def twaManifest = [
applicationId: 'com.simovinci.bagnoadriatico',
hostName: 'www.bagnoadriatico.it', // The domain being opened in the TWA.
launchUrl: '/mobile', // The start path for the TWA. Must be relative to the domain.
name: 'BagnoAdriatico di Casalborsetti', // The name shown on the Android Launcher.
themeColor: '#ff5c14', // The color used for the status bar.
backgroundColor: '#ffff00' // The color used for the splash screen background.
]

然后我签署了apk,构建并在Play商店中发布。

在我通过数字资产链接创建协会的网站中 https://www.bagnoadriatico.it/.well-known/assetlinks.json "语句列表生成器和测试器"说操作成功 "成功!主机 www.bagnoadriatico.it 授予应用程序深度链接到com.simovinci.bagnoadriatico。 https://developers.google.com/digital-asset-links/tools/generator

地址栏仍然可见,我不知道为什么。

https://www.bagnoadriatico.it/mobile 返回 200 http 代码。 PWA 经过 100% 灯塔验证。 键指印正确

====

=========================================我尝试设置 launchUrl = "/"(在我将 302 删除到移动版本之前),但没有任何变化。地址栏仍然可见。

如果您使用过 Google Play 的应用签名功能,则您的 SHA 256 会发生变化。解决方法是从 Play 商店下载您的应用,然后使用以下工具(也从 Play 商店)生成新的 assetlinks.json 文件:

https://play.google.com/store/apps/details?id=dev.conn.assetlinkstool&hl=en

assetlinks.json文件实际上是错误的。它包含Android标记Web标记:

[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "web",
"site": "https://www.bagnoadriatico.it"
}
},{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "com.simovinci.bagnoadriatico",
"sha256_cert_fingerprints": ["DA:E2:7C:57:8F:B8:28:ED:C0:00:70:7C:52:1F:95:8E:50:E6:A9:58:50:B0:FB:9A:F1:99:78:C9:D4:6B:72:45"] }
}]

assetlinks.json包含以下语句就足够了:

[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "com.simovinci.bagnoadriatico",
"sha256_cert_fingerprints": ["DA:E2:7C:57:8F:B8:28:ED:C0:00:70:7C:52:1F:95:8E:50:E6:A9:58:50:B0:FB:9A:F1:99:78:C9:D4:6B:72:45"] }
}]

我不确定这是否是地址栏可见的根本原因。我还建议仔细检查:

  • 仔细检查指纹
  • 确保在打开 URL 时没有重定向到未验证的域。

让我知道这些是否有任何帮助。

我只在模拟器上发现了这个问题。 它在真实设备上完美运行。

问题是模拟器无法加载已签名的 APK.To 在模拟器上加载已签名的apk在gradle文件中添加以下代码

signingConfigs{
debug{
keyAlias 'your key alias'
keyPassword 'your keypassword'
storeFile file('keystore path')
storePassword 'your storepassword'
}
}
buildTypes {
debug{
signingConfig signingConfigs.debug
}
}  

经过大量调试,我终于找到了地址栏突然再次出现的原因:

我们添加了对其他域之一的 API 调用。这基本上打破了应用程序的"信任"。将assetlinks.json也添加到 API 域后,应用再次开始隐藏 URL 栏。

相关内容

  • 没有找到相关文章

最新更新