开发者问题收集

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

2019-06-07
3417

我开发了一个渐进式 Web 应用,并希望将其作为受信任的 Web 活动发布到 Play Store 中。 它是 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% 通过 Lighthouse 验证。 密钥指纹正确

===========================================

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

3个回答

如果您使用了 Google Play 的应用签名,您的 SHA 256 会发生变化。解决方法是从 Play Store 下载您的应用,然后使用 Play Store 中的以下工具生成新的 assetlinks.json 文件:

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

Justin Pillay
2020-05-10

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 时没有重定向到未经验证的域。

如果这些有帮助,请告诉我。

andreban
2019-06-19

我仅在模拟器上发现了这个问题。 它在真实的设备上完美工作。

问题是模拟器不加载签名的apk。加载符号的apk在模拟器上添加以下代码

059446066 source
Gaya
2021-05-17