2016-03-02 29 views
5

私はコルドバ6.0.0への既存のアプリを更新していると私は持っているのiOS 9.コルドバ6アプリは、ファイルから読み込むことができません://パス

をターゲットにXCodeの7.2.1とiOSデバイス上でそれを実行している問題を抱えていますWKWebViewプラグインをインストール:cordova-plugin-wkwebview-engine 1.0.2

AngularJSで構築されたアプリケーションを実行している場合は、それが何をしようとする最初のものの一つは、JSONファイルのオープンです:

$http.get('data/config.json').success(function(data) { 
    // do stuff 
}); 

しかし、我々はこのエラーを取得しますウェブビューコンソール:

我々が持っているconfig.xmlファイルで
XMLHttpRequest cannot load file:///var/mobile/Containers/Bundle/Application/ 
E9D74C94-ADC6-410F-9F41-7CE63CB7877F/Milk.app/www/data/config.json. Cross 
origin requests are only supported for HTTP. 

://要求は、このようにブロックされているとどのように私はそれを修正することができます:

<access origin="*" subdomains="true" /> 

なぜファイルはありますか?よると

*編集*

plugin page:あなた ファイルを使用してロケールファイルをロードすることはできませんどこのiOS 9で

は、AppleはiOSの8により本問題を修正しました://、およびローカルWebサーバー を使用する必要がありますが、サーバでCORSを有効にしないで、 file://プロトコルのXHRを使用することはできません。

」とはどういう意味ですか??どのサーバーですか?ローカルファイルをロードしていますが、サーバはありません!

+0

iosバージョンが使用されていますか? –

+0

@Meiko iOS 9です。iOS 9では、ローカルWebサーバーが明らかに*修正*されているという問題があるため、ローカルサーバー上でCORSを有効にする方法については理解していません。言い換えれば、それは実際には固定されていないように聞こえる! – Ade

+0

Cordova 6と[email protected]を使用している場合、このプラグインは必要ありません.Cordovaはwkwebview:http://cordova.apache.org/news/2016/01/28/tools-releaseを使用します。 html – Joerg

答えて

6

EDIT:イオンチームはWKWebViewEngineプラグインのフォークに取り組んでいるとXHRの問題、この1つは固定されているかどうかわからないの一部を固定している

。あなたがしたい場合https://issues.apache.org/jira/browse/CB-10237?jql=labels%20%3D%20wkwebview-known-issues

を参照してください。これは既知の問題で、地元file:// URL XmlHttpRequestsがより既知の問題についてはWKWebViewEnginehttps://issues.apache.org/jira/browse/CB-10143

で許可されていないです :あなたはhttps://github.com/driftyco/cordova-plugin-wkwebview-engine

旧答えに見てみることができますローカルのajax呼び出しを使用するには、wkwebview-engine-localhostプラグイン(https://github.com/apache/cordova-plugins/tree/master/wkwebview-engine-localhost

またはTelerikのWKWebViewプラグイン(https://github.com/Telerik-Verified-Plugins/WKWebView)。

どちらも、既知のWKWebViewの制限のいくつかを解決するローカルWebサーバーを使用します。

+0

興味深い。 Polyfill PluginなしCordova 6(cordova-ios 4)は、本質的に多くの場合に使用する準備ができていません。 – Ade

+0

cordova-ios 4は完全に使用可能ですが、UIWebViewを使用しています。 WKWebViewはAppleのバグのためにほとんどの場合使用できませんので、iOS 10でそれらを修正してみましょう。とにかく、ほとんどの場合、UIWebViewは十分です。ほとんどの人はWKWebViewを必要としません。 – jcesarmobile

+0

OK、UIWebViewはcordova-ios 4に置き換えられました。 – Ade

1

私はローカルファイルへのアクセスにもSQLiteアクセスを含む問題がありました。見つけたサンプルコードに基づいてプラグインを作成し、それを動作させるように修正しました。 YMMV

https://github.com/TheMattRay/cordova-plugin-wkwebviewxhrfix

関連する問題