我正在构建PWA,它遵循所有规则,甚至具有HTTPS URL:
但是URL栏仍然出现:
该应用程序可以安装,因为它符合所有规则,并且我已经通过Android手机在Chrome中对其进行了测试:
这是我的成绩:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
defaultConfig {
applicationId "tk.supernovaic.tmtimer.go"
minSdkVersion 20
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [
hostName: "toastmasterstimer.tk",
defaultUrl: "https://toastmasterstimer.tk",
launcherName: "Toastmasters Timer - Go",
assetStatements: '[{ "relation": ["delegate_permission/common.handle_all_urls"], ' +
'"target": {"namespace": "web", "site": "https://toastmasterstimer.tk"}}]'
]
resValue "color", "colorPrimary", "#272838"
}
buildTypes {
release {
minifyEnabled false
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.github.GoogleChrome.custom-tabs-client:customtabs:e849e45c90'
}
这是我的 AndroidManifest.xml :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.placeholder">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="${launcherName}"
android:supportsRtl="true"
android:theme="@style/Theme.TwaSplash">
<meta-data
android:name="asset_statements"
android:value="${assetStatements}" />
<activity android:name="android.support.customtabs.trusted.LauncherActivity"
android:label="${launcherName}">
<meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="${defaultUrl}" />
<meta-data
android:name="android.support.customtabs.trusted.STATUS_BAR_COLOR"
android:resource="@color/colorPrimary" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https"
android:host="${hostName}"/>
</intent-filter>
</activity>
</application>
</manifest>
这是 style.xml :
<resources>
<style name="Theme.TwaSplash" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
我遵循了此教程:
Trusted Web Activity - PWA to Play Store Guide
有人知道我想念什么吗?谢谢。
答案 0 :(得分:0)
构建APK时,您将使用密钥存储区对应用进行签名。
创建密钥存储区后,您将需要获取sha256 fingerprint
。
要获取sha256,您需要运行:
keytool -list -v -keystore /keystore-location/pwa-keystore.ks
然后,请确保您的网络应用程序中包含以下路径的路由,其中包含上面生成的sha256指纹。
www.example.com/.well-known/assetlinks.json
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "scapeq",
"package_name": "org.electrobooth.twa.scapeq",
"sha256_cert_fingerprints": ["sha256_FINGER_PRINT_GOES_HERE"]
}
}
]
答案 1 :(得分:0)
域toastmasterstimer.tk
似乎缺少数字资产链接文件,这对于验证所有权和启用全屏是必需的。
该文件必须位于https://toastmasterstimer.tk/.well-known/assetlinks.json
。
您可以使用Statement List Generator and Tester来生成assetlinks.json
文件。
文档的section提供了更多信息,包括如何从签名密钥中提取SHA-256指纹。
答案 2 :(得分:0)
是您在web / .well-known / assetlinks.json中输入的sha256指纹 与在Google Play控制台中输入的相同? (在“发布管理” /“应用签名”“应用签名证书”上)
product_action RECORD NULLABLE
product_action.action_type INTEGER NULLABLE
product_action.checkout_step INTEGER NULLABLE
答案 3 :(得分:-1)
将其添加到清单中,然后再移植到android:
"display": "standalone"