4

我有一个从https://appmaker.xyz/pwa-to-apk/生成的非常基本的 Android 应用程序。该应用程序实际上非常接近谷歌发布的一个示例,我再也找不到了。

问题是,如果您将设备上的默认浏览器设置为不支持 TWA 的浏览器,应用程序会打开但会显示 URL 栏。如果你想要所有的技术乐趣,这里有一个解释一切的错误报告:https ://bugs.chromium.org/p/chromium/issues/detail?id=942930

我的 Android 开发技能仅限于在 Android Studio 中编译应用程序,我不知道我可以进行哪些修改来强制我的应用程序更喜欢支持 TWA 的浏览器。我可以对此进行一些修改吗?

这是我的 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>
4

1 回答 1

0

浏览器对受信任的 Web 活动的支持正在改进 - Chrome、Edge 和其他一些支持它,Firefox 即将推出(Firefox Nightly 已经支持它)。

该示例是svgomg-twa,现在已弃用。

生成使用 Trusted Web Activity 的应用程序的最佳方法是使用Bubblewrap之类的东西——它是一个 Node.js CLI 应用程序。

它默认为自定义选项卡回退行为(URL 栏),但可以选择启用 WebView 回退。

  1. 初始化项目bubblewrap init --manifest=https://example.com/manifest.json
  2. 这将生成 Android 项目和一个名为twa-manifest.json. 编辑此文件并将fallbackType字段从更改customtabswebview
  3. 更新项目bubblewrap update
  4. 最后,构建 APKbubblewrap build

替代方法:

PWABuilder使用 Bubblewrap 作为库,可以用于相同的目标:

  1. 导航到https://www.pwabuilder.com/
  2. 在输入端输入 PWA 的添加地址
  3. 点击Build my PWA
  4. 单击 Android 卡上的向下箭头
  5. 点击Options
  6. 将后备类型单选从“自定义选项卡”更改为“Web 视图”
  7. 点击Done
  8. 点击Download
于 2020-07-24T20:17:10.497 回答