TL;DR:请参阅最后一段,了解最终为我解决问题的解决方案。
尽管我尝试了所有方法,但我仍然保留了 PWA 上的导航栏,所以我想我会分享我所做的一切、有效的方法以及最终如何解决它,这样你就不必在网上搜索解决方案像我不得不这样做的几个小时。
扩展 @alvaropaco 的回答,在您从 PWABuilder 获得的 .zip 文件中,您必须将 assetlink.json 文件放在名为 .well-known 的文件夹中,直接在您的域下。它应该可以通过https://www.your-domain.com/.well-known/assetlink.json 访问,否则导航栏不会被隐藏。没有例外。阅读 .apk 附带的 README.html:
将 PWA 导入 Google Play 商店的后续步骤您已成功生成 Google Play 商店应用程序包(.apk 文件)
为您的 PWA。 ?
接下来的步骤:
- 将
assetlinks.json 部署到您的服务器。
- 在 Android 设备或 Android 模拟器上测试您的包。
- 将您的
apk 文件上传到 Google Play 商店。
下面解释了每个步骤。
1。部署assetlinks.json
您的 zip 文件包含 assetlinks.json。这是digital asset links file
这证明你拥有你的 PWA 的域。将此文件上传到您的服务器
在https://example.com/.well-known/assetlinks.json。 (代替
example.com 和你的 PWA 的 URL。)
?♂️ 注意:
您的 PWA 需要数字资产链接才能在没有浏览器地址栏的情况下加载。如果您在您的
Android 上的应用程序,您的 assetlinks.json 文件丢失、无法访问,
或不正确。请参阅我们的asset links helper 进行修复
这个。
如果您不使用 PWABuilder 构建您的应用程序;也许改用bubblewrap 或其他东西,这里有一些资源可以帮助您开始构建assetlinks.json 文件:
旁注:
在使用bubblewrap 构建我的应用时,我不断收到这个烦人的错误,因为安装Android SDK 工具时出现问题,我无法继续:
C:\Users\Me\Desktop\app>bubblewrap build
,-----. ,--. ,--. ,--.
| |) /_,--.,--| |-.| |-.| |,---.,--. ,--,--.--.,--,--.,---.
| .-. | || | .-. | .-. | | .-. | |.'.| | .--' ,-. | .-. |
| '--' ' '' | `-' | `-' | \ --| .'. | | \ '-' | '-' '
`------' `----' `---' `---'`--'`----'--' '--`--' `--`--| |-'
`--'
Installing Android Build Tools. Please, read and accept the license agreement
build Installing Build Tools
Error: Could not find or load main class com.android.sdklib.tool.sdkmanager.SdkManagerCli
cli ERROR undefined
我发布了与此问题相关的单独
stack overflow answer。
验证assetlinks.json
要验证在 Android 设备上是否正确识别assetlinks.json,请运行以下步骤:(您需要先安装adb 和grep):
调试数字资产链接
在您生成signed APK 之后。可以使用 adb 将其安装到测试设备中:
adb install app-release.apk
如果验证步骤失败(如果地址栏仍然可见),则可以使用 Android Debug Bridge 从您的操作系统终端和连接的测试设备检查错误消息。
adb logcat | grep -e OriginVerifier -e digital_asset_links
现在,请确保您的应用已完全关闭(强制停止),然后重新打开。
如果失败,您将看到Statement failure matching fingerprint. Verification failed. 消息。因此,review AndroidManifest.xml 和 build.gradle 文件并检查配置是否与 assetlinks.json。
否则应该出现Verification succeeded. 消息。
source
如果assetlinks.json 经过验证但导航栏仍然存在怎么办?
我遇到了这个问题,但我终于在this GitHub问题帖子的帮助下解决了这个问题。事实证明,我在twa-manifest.json 中设置了host 参数(不是manifest.json,因为我使用bubblewrap 构建了它——它比PWABuilder 具有更大的灵活性,尽管它只适用于Android)设置为https://example.com 而不是@987654351 @(注意www)我的网站是实际托管的。 所以如果你使用 PWABuilder 构建它,首先在浏览器中访问你的站点,点击地址栏,复制整个 URL,然后将 那个 粘贴到 PWABuilder 中.
地址栏应该没有了。