简单的答案是,目前无法直接将 PWA 添加到 Google Play Store、Apple 的 iTunes 或 Microsoft 的 App Store。但是,您可以将 PWA 直接添加到 Amazon 的 App Store。对于其余的,您必须首先为其创建一个包装器,然后将包装器包部署到商店。由于您专门询问了 Google Play Store,因此您基本上需要两个文件(见下文),加上一些支持文件,当您在 Android Studio(或类似环境)中创建新的 Android 项目时会自动为您创建这些文件。您需要一个启动 PWA 起始 URL 的主要活动,例如:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
view.loadUrl("about:blank");
Toast.makeText(MainActivity.this,
"Failed loading initial resources. Online access is needed when starting the app up for the first time. Close and try again with network connectivity", Toast.LENGTH_LONG).show();
super.onReceivedError(view, request, error);
}
});
webView.loadUrl(APPLICATION_URL);
}
}
您不需要 XML 布局文件(您可以只在代码中创建 WebView),但如果您更喜欢在 xml 中配置选项,它会是这样的:
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mypackage.myapp.MainActivity"/>
最后,您需要 AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage.myapp">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/my_logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/my_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
然后,您需要 Android 构建工具来创建您的包。如果您已下载 Android Studio,则一切就绪。好消息是,一旦您发布了您的包装应用程序,您就不需要对其进行太多更改,而是可以专注于仅更新您的 PWA。
对于 Microsoft App Store,过程类似。您不一定需要 Visual Studio。您可以只使用 PWABuilder 的包作为基础,删除您不需要的任何内容,然后使用 (Windows) 命令行工具创建一个“应用程序包上传文件”。
对于 iTunes,您需要另一个包装器和 AFAIK,创建一个的唯一方法是使用(Apple 的)Xcode IDE。