0

これで私を助けてください私がやろうとしていることは私が持っていることです

  1. Webkit を含む Cocoa アプリケーション。
  2. ローカル データベースを備えた HTML5 ベースの Web アプリケーション。

この HTML5 アプリケーションを cocoa アプリケーションで実行しようとすると、「エラー: 不明なエラー エラー: SECURITY_ERR: DOM Exception 18.」というエラーが表示されます。同じアプリケーションは正常に動作しています

  1. サファリ
  2. iphoneサファリ
  3. UIWebkit

私は次のことを試しました

@interface WebPreferences (WebPreferencesPrivate)
- (void) _setLocalStorageDatabasePath:(NSString *)path;
- (void) setDatabasesEnabled: (BOOL) databaseEnabled;
- (void) setLocalStorageEnabled: (BOOL) localStorageEnabled;
@end

WebPreferences* prefs = [self.mainWebVEW preferences];
[prefs _setLocalStorageDatabasePath:appdir];
[prefs setDatabasesEnabled:YES];
[prefs setLocalStorageEnabled:YES];
[prefs setDefaultFontSize:20];

機能しているように見える唯一の設定は、フォントサイズです。

これを乗り越える方法を誰か助けてもらえますか?

前もって感謝します

よろしく

アンキット

4

1 に答える 1

0

わかりましたので、最終的に解決したことは、もう 1 つのプライベート API を使用することだけです

@interface WebView(WebViewPrivate)
- (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(id) origin database:(NSString *)databaseIdentifier;
@end

- (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(id) origin database:(NSString *)databaseIdentifier
{
static const unsigned long long defaultQuota = 5 * 1024 * 1024;
if ([origin respondsToSelector: @selector(setQuota:)]) {
    [origin performSelector:@selector(setQuota:) withObject:[NSNumber numberWithLongLong: defaultQuota]];
} else { 
    NSLog(@"could not increase quota for %@", defaultQuota); 
}
}
于 2012-09-07T18:24:19.947 に答える