Как скрыть адресную строку в PWA?

Я создаю PWA, и он следует всем правилам, у него даже есть URL-адрес HTTPS:

https://toastmasterstimer.tk

Но адресная строка все еще появляется:

предварительный просмотр

Приложение можно установить, поскольку оно соответствует всем правилам, и я тестировал его в Chrome со своего телефона Android:

предварительный просмотр 2

Это мой Gradle:

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>

Я следил за этим руководством:

Надежная активность в Интернете - руководство по использованию PWA в Play Маркете

Кто-нибудь знает, что мне не хватает? Спасибо.


person Federico Navarrete    schedule 23.07.2019    source источник
comment
Вы можете исправить это в своем файле манифеста (start_url: fanmixco.github.io/ toastmasters-timer-material-design) Похоже, это не так. если ваше приложение находится в корне вашего домена   -  person Mathias    schedule 24.07.2019
comment
Спасибо @Mathias, я забыл!   -  person Federico Navarrete    schedule 24.07.2019


Ответы (4)


В домене toastmasterstimer.tk, похоже, отсутствует файл ссылок на цифровые активы, необходимый для подтверждения права собственности и включения полноэкранного режима.

Файл должен быть доступен по адресу https://toastmasterstimer.tk/.well-known/assetlinks.json.

Вы можете использовать генератор и тестер списка инструкций для создания assetlinks.json файла. .

Этот раздел документация предоставляет дополнительную информацию, в том числе о том, как извлечь отпечаток SHA-256 из ключа подписи.

person andreban    schedule 25.07.2019

При создании 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"]
      }
    }
  ]
person Connor Williams    schedule 23.07.2019

Является ли отпечаток пальца sha256, который вы ввели в свой web / .well-known / assetlinks.json, таким же, как отпечаток, введенный в консоли Google Play? (На «Управление выпуском» / «Подписание приложения» «Сертификат подписи приложения»)

    [{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target" : { "namespace": "android_app", "package_name": "package.name",
                 "sha256_cert_fingerprints": ["**this:one**"] }
  }]

скриншот консоли Google Play

person Gwen    schedule 17.01.2020

Добавьте это в свой манифест перед портом на android:

     "display": "standalone"
person morrisng    schedule 23.07.2019