5

この投稿は半分質問 - 半分発表です..私は、javascript コードを実行する UIWebView を含む iOS アプリケーションを開発しています。新しい iOS 7 を搭載したデバイスでアプリを実行すると、一部の機能が動作しません。長いデバッグの後、私はその理由を切り分けることができました。Javascript AJAX には、コンストラクター メソッド open を持つリクエスト API があります。

XMLHttpRequest.open(メソッド、URL、非同期)

'asynch' 引数は、呼び出しをブロックする必要がある場合は false であり、それ以外の場合は true です。iOS 7 サファリのみの問題は、「async」が false の場合にこのメソッドが例外をスローすることです。

ですから、これが同じ問題に遭遇した人に役立つことを願っています。誰かがこのバグまたはそれを回避する方法について光を当てることができれば、それは素晴らしいことです

ありがとう!

4

1 に答える 1

6

UIWebview は、IOS7 で同期 XHR を許可しません。

これは、WebView と Safari の間の苛立たしい違いの 1 つです (Safari では許可されています)。

回避策:

  1. 同期 HTTP リクエストを作成する Objective-C 関数を作成します。

  2. その関数を JavaScript から呼び出します。(これは同期的に発生します。)

もちろん、キャッシュなどの利点が必要な場合は、自分で実装する必要があります。

Apple がなぜその回避策を要求するのが良い考えだと考えるのか、少し不可解です。

于 2013-10-31T16:37:50.053 に答える