WKWebViewでajax(XmlHttpRequest)を使うには

Use ajax(XmlHttpRequest) on WKWebView
iOSの組み込みブラウザであるWKWebViewでは、標準状態ではクロスドメインアクセスを認めていないため、内部のJavaScriptからXMLHttpRequestを呼び出そうとするとエラーになります。これを解決するにはWKWebViewConfigurationで「allowUniversalAccessFromFileURLs」を定義します。

ここで注意したいのは「config.Preferences」ではなく「config」のキーとして登録すること。そうでないと、キーの定義が存在しないと例外が発生し、いつまで経っても有効になりません。

こちらはXamarin.iOSによるプログラム例です。
wkwebview.cs
WKWebViewConfiguration config;
WKUserContentController controller;
public WKWebView WebView { get; private set; }

public override void LoadView()
{
	base.LoadView();

	config = new WKWebViewConfiguration();
	controller = new WKUserContentController();
	config.UserContentController = controller;
	config.Preferences.SetValueForKey(FromObject(true), new NSString("allowFileAccessFromFileURLs"));
	config.SetValueForKey(FromObject(true), new NSString("allowUniversalAccessFromFileURLs"));

	WebView = new WKWebView(CGRect.Empty, config);
	WebView.Layer.RemoveAllAnimations();
	WebView.UIDelegate = this;
	this.View = WebView;
}
2018/06/14