2011-01-13 8 views
4

私の開発チームは、洗練されたHTML5 WebアプリケーションをiPhone/iPadに同期させるiOS普遍的なアプリを構築しました。アプリケーションはローカルファイルシステムからUIWebViewにロードされます。最近、MessageUI.frameworkを使用してアプリ内メールを追加しました。iOS UIWebView DOM Exception 18のトラブルシューティング方法

私たちのQA部がMailComposeクラスのインスタンス化によってUIWebViewがSECURITY_ERR:DOM Exception 18エラーをスローするようなユースケースが特定されるまで、すべてうまくいっていました。これはiOS 4.2.1でのみ発生します。アプリは、SDK 4.1に対してビルドされ、iOS 4.1を実行しているデバイスにインストールされていると正常に機能します。このフィーリングは、iOS 4.2バグ、またはiOS 4.2で登場したHTML5のようなものです。

私はSECURITY_ERR:DOM例外18の原因を見つけるための技術を探しています。このエラーは何らかの種類の同じ起源の例外ですが、4.1で動作する理由はわかりませんが、 4.2。そしてMailComposeクラスはなぜこの問題を引き起こしますか?

何か手助けをいただければ幸いです!

+0

この状況を克服することができますか?mは同じ向きですか? –

答えて

2

ローカルFSからHTMLソースをどのように読み込むのですか? また、UIWebViewに読み込まれたドキュメントと対話するために、MailComposeクラスは何をしますか?

htmlファイルの内容を文字列に読み込んでUIWebViewにロードする場合は、変更してfile://プロトコルを使用してロードする必要があります。代わりに、文字列としてHTMLソースをロードする

:先に

NSString *html = [NSString stringWithContentsOfFile:[path stringByAppendingString:@"path to the html file"] encoding:NSUTF8StringEncoding error:NULL]; 
[webView loadHTMLString:html baseURL:baseURL]; 

移動し、NSURLRequest(ファイル:// URL)を経由して、実際のhtmlファイルを読み込むそう

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSURL *baseURL = [NSURL fileURLWithPath:[path stringByAppendingString:@"path and file name of the file"]]; 
NSURLRequest *request = [NSURLRequest requestWithURL:baseURL]; 
[webView loadRequest:request]; 

、可能window.localStorage、window.openDatabaseなどのオブジェクトへのアクセス。

乾杯

+1

実際、NSURLRequestを使用してHTMLをロードしています。そして、すでにwindow.localStorageとwindow.openDatabaseを大量に使用しています。私は今、MailComposeアクションシートを表示する前に、メモリからUIWebViewを持つUIViewControllerを完全に削除することによってDOM例外を回避することができます。しかし、DOM例外がなぜ発生したのかは決して特定できませんでした。ところで、MailComposeはMessageUI.framework&MFMailComposeViewControllerの一部です。 – user573507

+0

ありがとう、NSURLRequestを介してページを読み込んで私のために解決しました – deepflame

関連する問題