PhoneGapから真のネイティブiPhoneアプリに移行しており、PhoneGapで作成されたHTML5ローカルストレージに保存されているユーザーデータにアクセスする必要があります。ユーザーにシームレスな更新プロセスを作成できるように、そのデータをどのように入手するのですか?iOSのPhoneGapで作成されたHTML5ローカルストレージにアクセスするにはどうすればよいですか?
5
A
答えて
4
だけWebkitのローカルストレージデータベースに直接アクセスし、必要な値を抽出するためにiPhone SDKに含まれているsqlite3ライブラリをインポートしました。これは、PhoneGapで作成したローカルストレージにアクセスする方法です。
NSString *databaseName = @"file__0.localstorage";
//Get Library path
NSArray *libraryPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES);
NSString *libraryDir = [libraryPaths objectAtIndex:0];
NSString *databasePath = [libraryDir
stringByAppendingPathComponent:@"WebKit/LocalStorage/"];
NSString *databaseFile = [databasePath
stringByAppendingPathComponent:databaseName];
BOOL webkitDb;
NSFileManager *fileManager = [NSFileManager defaultManager];
webkitDb = [fileManager fileExistsAtPath:databaseFile];
if (webkitDb) {
MMWebKitLocalStorageController* wkc = [[MMWebKitLocalStorageController alloc] init];
[wkc updateUserFromLocalStorage:databaseFile];
}
3
現在ローカルストレージにアクセスするためのネイティブAPIはありませんが、ローカルストレージをJSONなどにダンプするJavaScriptを使用してウェブビューを作成しようとする可能性があります。
webViewDidFinishLoad:
メソッドを実装し、ダンプをトリガーするstringByEvaluatingJavaScriptFromString:
メソッドを使用していますUIWebViewDelegate
デリゲートを持っているUIWebView
を作成します。このような
何か、最初のページには、Webビューにロードします。
<html>
<head>
<script>
// download and insert JSON-js here
// https://github.com/douglascrockford/JSON-js
function dumpLocalStorageToJSON() {
d = {};
for(i = 0; i < localStorage.length; i++)
d[localStorage.key(i)] = localStorage.getItem(localStorage.key(i));
return JSON.stringify(d);
}
</script>
</head>
</html>
[完了負荷デリゲートメソッド:私はマティアス道が、私は試していない
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *localStorageAsJSON = [webView stringByEvaluatingJavaScriptFromString:@"dumpLocalStorageToJSON();"];
// parse JSON and do something useful
}
関連する問題
- 1. phonegapでフォトアルバムを作成するにはどうすればよいですか?
- 2. ElasticsearchでNESTで作成されたクエリでスクリプトフィールドにアクセスするにはどうすればよいですか?
- 3. アクティビティ/フラグメントからサービスで作成されたMediaPlayerにアクセスするにはどうすればよいですか?
- 4. Interface Builderで作成されたNSTableViewにプログラムでアクセスするにはどうすればよいですか?
- 5. JQueryでserializeArrayで作成された値にアクセスするにはどうすればよいですか?
- 6. python manage.py testserverで作成されたデータベースにアクセスするにはどうすればよいですか?
- 7. global.asax.csで作成されたプロパティにアクセスするにはどうすればよいですか?
- 8. ng-formディレクティブで作成されたスコープにアクセスするにはどうすればよいですか?
- 9. html5ローカルストレージにhtml、javascript、およびcssファイルを保存するにはどうすればいいですか?
- 10. 動的に作成された 'el'でバックボーンビューを作成するにはどうすればよいですか?
- 11. iOSのカスタムキーボード:UITextFieldにアクセスするにはどうすればよいですか?
- 12. WiFiManagerフレームワークのiOSにアクセスするにはどうすればよいですか?
- 13. iOSのコンパスにアクセスするにはどうすればよいですか?
- 14. 動的に作成されたマテリアライズトーストツールチップのリスナーを作成するにはどうすればよいですか?
- 15. iOS UI:アラームアプリで使用されるコントロールを作成するにはどうすればよいですか?
- 16. 私のドメインのすべての部分がローカルストレージにアクセスできるようにJWTをローカルストレージに保存するにはどうすればよいですか?
- 17. html5で「アーカイブページ」または「カテゴリインデックス」を作成するにはどうすればよいですか?
- 18. Xamarin Visual Studioでローカルストレージを作成するにはどうすればよいですか?
- 19. ローカルストレージの値を更新するにはどうすればよいですか?
- 20. 計算されたフィルタリングされたプロパティを作成するにはどうすればよいですか?
- 21. tf.contrib.layers.fully_connectedで作成したレイヤーからウェイトにアクセスするにはどうすればよいですか?
- 22. Grails 3でセッションが作成されないようにするにはどうすればよいですか?
- 23. すでに作成されたリストに値を追加するにはどうすればよいですか?
- 24. ウェブサービスアプリの作成にはどうすればよいですか?
- 25. iOSカレンダーアプリのようにグリッドを作成するにはどうすればよいですか?
- 26. さまざまなバージョンのiOS用にアプリアイコンを作成するにはどうすればよいですか?
- 27. iOS用のFacebookブックに類似したサイドバーを作成するにはどうすればよいですか?
- 28. オーディオからHTML5でオーディオプレーヤーを作成するにはどうすればよいですか?
- 29. iOSチャートの折れ線グラフでセグメント線セクションを作成するにはどうすればよいですか?
- 30. Rでは、データフレームの変換されたサブセットを作成するにはどうすればよいですか?
ニース。これがAppleによってどこかで文書化されているかどうか知っていますか? –
iExplorerでPhoneGapアプリを開き、myApp/WebKit/LocalStorage/file__0.localstorageにsqliteファイルを見つけるパスを取得しました。ファイル名を含めるように答えを更新します。 –
5.1では、localStorageの場所がLibrary/Cachesに変更されています。 @KerriShottsありがとう。 –