IOSのUIWebviewに問題があります。 Appleは、これを使用してアプリを拒否します。そのため、cordova iosアプリにWKWebviewを使用することにしました。cordova-plugin-wkwebview-engineをインストールし、config.xmlに<preference name="WKWebViewOnly" value="true" />
を追加しましたファイルの問題は、スプラッシュ画面の後に白い空白の画面が表示されることです。
<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.Apache.org/ns/1.0">
<name>HelloCordova</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="[email protected]" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access Origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="Android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<plugin name="cordova-plugin-ionic-webview" spec="^4.1.3" />
<preference name="WKWebViewOnly" value="true" />
<engine name="ios" spec="~5.1.1" />
<plugin name="cordova-plugin-background-mode" spec="^0.7.3" />
<plugin name="cordova-plugin-badge" spec="^0.8.8" />
<plugin name="cordova-plugin-camera" spec="^4.1.0" />
<plugin name="cordova-plugin-device" spec="^2.0.3" />
<plugin name="cordova-plugin-geolocation" spec="^4.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.3" />
<plugin name="cordova-plugin-x-toast" spec="^2.7.2" />
</widget>
ここでも同じ問題。それを機能させるには、iOSプラットフォームを再インストールする必要がありました(バージョン5.1.1へ)
このプラグインを追加することを忘れないでください:
<plugin name="cordova-plugin-wkwebview-engine" source="npm" />
<plugin name="cordova-plugin-wkwebview-file-xhr" source="npm" />
これを追加
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<preference name="AllowBackForwardNavigationGestures" value="true" />
<preference name="Allow3DTouchLinkPreview" value="false" />
[email protected]でコンパイル
[email protected]+でビルドするには
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
コルドバのドキュメントによると: https://github.com/Apache/cordova-plugin-wkwebview-engine/blob/master/README.md
これらの権限を追加する必要があります
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
そのため、ドキュメントに記載されているように、それらが追加されていることを確認します。「iOS 9では、Appleにより、file://を使用してロケールファイルをロードできず、ローカルウェブサーバーの使用に頼らなければならないiOS 8の問題が修正されました。ただし、サーバーでCORSが有効になっていないと、file://プロトコルからXHRを使用することはできません。」
したがって、バージョン8でのテストには問題がありますが、config.xmlの実装がまだ完全ではないので、機能と設定で更新します。
tsconfig.json
に移動し、compilerOptions
でtarget
がes5
に設定されていることを確認します。私はすべてを試しましたが、これだけがうまくいきます