【问题标题】:In Trusted Web Activity the address bar not hiding在受信任的 Web 活动中,地址栏没有隐藏
【发布时间】:2019-07-27 15:30:37
【问题描述】:

在关注关于 TWA 的 Using Trusted Web Activities 页面并隐藏 URL 栏后,我已按照所有说明隐藏 URL 栏,但令人惊讶的是它并没有隐藏。

我该如何解决这个问题?

这是我的assetlinks.json 文件:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "org.foodeye.mobile",
    "sha256_cert_fingerprints":
    ["BA:D3:3B:41:7C:1E:7B:DC:0F:FE:70:EB:33:5D:F1:A0:40:3B:09:73:A0:5D:42:80:45:DA:CB:DA:0F:9D:5A:D3"]
  }
}]

这是assetlinks.json url:https://foodeye.org/.well-known/assetlinks.json

这是清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.foodeye.mobile">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <meta-data
        android:name="asset_statements"
        android:value="@string/asset_statements" />

    <activity android:name="android.support.customtabs.trusted.LauncherActivity"
        android:label="${launcherName}">
        <meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
            android:value="${defaultUrl}" />

        <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>

这是app的build.gradle:

apply plugin: 'com.android.application'

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "org.foodeye.mobile"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        manifestPlaceholders = [
                hostName: "app.foodeye.org",
                defaultUrl: "https://app.foodeye.org",
                launcherName: "Food Eye",
                assetStatements: '[{ "relation": ["delegate_permission/common.handle_all_urls"], ' +
                        '"target": {"namespace": "web", "site": "https://app.foodeye.org"}}]'
        ]
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.github.GoogleChrome.custom-tabs-client:customtabs:d08e93fce3'

}

这是strings.xml:

<resources>
<string name="app_name">Food Eye</string>
<string name="asset_statements">
    [{
        \"relation\": [\"delegate_permission/common.handle_all_urls\"],
        \"target\": {
            \"namespace\": \"web\",
            \"site\": \"https://app.foodeye.org\"}
    }]
</string>

提前致谢。

【问题讨论】:

  • 当我从浏览器访问assetlinks.json 内容时,我得到以下呈现的内容:i.stack.imgur.com/V8mn5.png。它似乎确实使用 curl 或在浏览器中使用 fetch 返回了正确的 JSON,但我想知道当浏览器尝试运行验证时它是否可能返回错误的内容。
  • 我使用的是由 Django REST Framework 生成的可浏览 API。此时我已将其转换为自然 JSON 格式。还是不行

标签: android url google-play progressive-web-apps trusted-web-activity


【解决方案1】:

您在 TWA 中打开的 URL 似乎是 https://app.foodeye.org,但资产链接托管在 https://foodeye.org/.well-known/assetlinks.json 上,这是一个不同的来源。

您需要将assetlinks 文件托管在与您在TWA 中打开的URL 相同的来源。 https://app.foodeye.org/.well-known/assetlinks.json

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多