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

时间:2019-06-07 07:28:05

标签: android gradle progressive-web-apps trusted-web-activity

我开发了Progressive Web App,并希望将其作为受信任的Web活动在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商店中发布。

在网站上,我通过Digital Asset Link创建了关联 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 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

问题是模拟器没有加载已签名的 APK。要在模拟器上加载已签名的 apk,请在 gradle 文件中添加以下代码

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

Source