2013-01-25 9 views
9

WebSQLを使用してストレージ用のWebベースのAndroidアプリを使用しています。なんらかの理由で、ボタンクリックに応答してopenDatabaseを呼び出すと、"SECURITY_ERR: DOM Exception 18"のメッセージがDOMExceptionになります。SECURITY_ERR:openDatabaseのDOM例外18

私はPhoneGapを使用していないことに注意してください。

の主な質問は、openDatabaseのDOMException 18の考えられる原因は何ですか?

さらに詳しい情報: この例外は、データベースがまだ存在しない場合にのみ発生します。既に存在する場合、期待どおりに動作します。 openDatabase呼び出しを行う関数は、アプリケーションの別の部分で使用され、正常に動作します。私がこれまで試した何

  • データベースのサイズを小さくするには - それは、アプリケーションの別の部分によって作成されていますので、問題にはなりません。
  • 私は外部ストレージのアクセス許可を確認しました。問題はありません。
  • 私は、USBケーブルが差し込まれていると、この問題が発生する可能性があります。

EDIT: これは、コマンドは次のようになります。仕様the specによると

db = openDatabase('my_database', '1.0', 'My database description', 5*1024*1024, function() {}); 
+0

その問題は解決されています...私は同じ問題に直面しています... – Aravin

+1

原因は何も分かりませんでした。結局のところ、WebSQLの安定性が、さまざまなAndroidデバイス/バージョンで私のニーズにあまりにも矛盾していることがわかったので、はるかに良いと判明したネイティブインターフェイスを作成しました。私はもはやこの質問に対する答えが必要ではないが、好奇心のために、私はまだ聞くことに興味があるだろう。 – Goldsmith

+0

私はこの問題を解決しました。厳密には、デバイスレディ機能の中でオープンデータベースと呼ばれていました.... – Aravin

答えて

1

、それは2つだけ

  • ユーザエージェントが上げることによって引き起こさ要求がポリシーの決定に違反した場合にDatabaseオブジェクトを返すのではなく、SECURITY_ERR例外(例えば、ユーザーエージェントがconfページがデータベースを開くことを許可しないように注意してください)。起源は

  • SECURITY_ERR例外をスロー
+0

両方の呼び出しが同じ起点を持ち、ユーザエージェントはページが読み込まれる前に設定されています。 – Goldsmith

+0

何かがあるはずです。私はあなたのコードを表示する場合にのみ理解することができます –

2

、その後、スキーム/ホスト/ポートタプルでない場合

  • は、私はそれがデータベースの許容サイズに関係していることがわかりました。 iOSで50 MBを超えるdbを開こうとすると、このエラーが発生します。

  • +0

    サイズ制限を超えた場合、opendatabaseがまったく同じエラーを引き起こすと私は驚くことはありませんが、ここでは該当しません。私が言ったように、それは正常にアプリの別の部分で作成されています。また、制限を5 MBに設定しました。 – Goldsmith

    関連する問題