web-dev-qa-db-ja.com

Cordova-plugin-ionic-webviewまたはcordova-plugin-wkwebview-engineプラグインを使用するCordova iOSでの空白の画面の問題

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>

4
Prasad

ここでも同じ問題。それを機能させるには、iOSプラットフォームを再インストールする必要がありました(バージョン5.1.1へ)

1
Kirsy92

このプラグインを追加することを忘れないでください:

<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]+でビルドするには

  • スプラッシュプラグインを削除(現在は統合されています)
  • inappbrowserプラグインをv4.0.0にアップグレードします
  • すべてのwkwebview関連プラグインを削除します
  • スキームとホストをconfig.xmlに追加します。
    <preference name="scheme" value="app" />
    <preference name="hostname" value="localhost"  /> 
1
Vero O

コルドバのドキュメントによると: https://github.com/Apache/cordova-plugin-wkwebview-engine/blob/master/README.md

それを行うための正しい方法: https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation/?utm_campaign=enterprise&utm_source=hs_email&utm_medium=email&utm_content=85128961&_hsenc=p2ANqtz--vsf3kcg7MssMWwjv2_GpHmVbzN23_5fXDfKT0E6OileYraLWs9btGPqWUcq5mzTKCtKwXGqO35V3SnInjypj4uqSBRg&_hsmi=85128961

これらの権限を追加する必要があります

<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の実装がまだ完全ではないので、機能と設定で更新します。

0
Mostafa Harb

tsconfig.jsonに移動し、compilerOptionstargetes5に設定されていることを確認します。私はすべてを試しましたが、これだけがうまくいきます