Chúng tôi đang chuyển từ PhoneGap sang ứng dụng iPhone thực sự có nguồn gốc và chúng tôi cần truy cập dữ liệu người dùng được lưu trữ trong bộ nhớ cục bộ HTML5 do PhoneGap tạo. Làm cách nào để chúng tôi nhận được dữ liệu đó để chúng tôi có thể tạo quy trình cập nhật liền mạch cho người dùng?Làm cách nào để truy cập bộ nhớ cục bộ HTML5 được tạo bởi PhoneGap trên iOS?
5
A
Trả lời
4
Tôi chưa thử cách Mattias' nhưng tôi chỉ truy cập cơ sở dữ liệu lưu trữ cục bộ webkit trực tiếp và sau đó nhập khẩu sqlite3 lib đi kèm với SDK iPhone để trích xuất các giá trị mà tôi cần. Đây là cách bạn truy cập localstorage được tạo bởi 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
Tôi không nghĩ rằng hiện tại có bất kỳ API gốc nào để truy cập bộ nhớ cục bộ nhưng bạn có thể thử tạo chế độ xem web với một số JavaScript để lưu trữ cục bộ vào JSON.
Tạo UIWebView
có số UIWebViewDelegate
ủy quyền thực hiện phương thức webViewDidFinishLoad:
và sử dụng phương pháp stringByEvaluatingJavaScriptFromString:
để kích hoạt đổ.
Something như thế này, đầu tiên các trang để tải trong giao diện 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>
Sau đó kết thúc phương pháp tải đại biểu:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *localStorageAsJSON = [webView stringByEvaluatingJavaScriptFromString:@"dumpLocalStorageToJSON();"];
// parse JSON and do something useful
}
Các vấn đề liên quan
- 1. Lưu hình ảnh vào bộ nhớ cục bộ phonegap
- 2. Làm cách nào để lưu dữ liệu từ biểu mẫu bằng Bộ nhớ cục bộ HTML5?
- 3. Bộ nhớ cục bộ HTML5 không liên tục
- 4. iOS - Truy cập đồng thời vào tài nguyên bộ nhớ
- 5. Bạn có thể sử dụng bộ nhớ cục bộ của HTML5 để làm gì?
- 6. Quản lý bộ nhớ iOS iOS - cách giải phóng "Bộ nhớ thực" được sử dụng bởi UIImageViews, UIScrollViews?
- 7. HTML5 ẩn bộ nhớ đệm
- 8. Truy cập biến cục bộ luồng nhanh trên Linux
- 9. Làm cách nào để truy cập và đọc tệp cục bộ từ trang html + javascript chạy cục bộ
- 10. Cách lưu trữ bộ nhớ cục bộ mạnh mẽ trong iOS
- 11. truy cập bộ nhớ so với bản sao bộ nhớ
- 12. Bộ nhớ ngoài truy cập Android
- 13. Cách một byte bộ nhớ được truy cập bởi CPU trong bộ nhớ 32 bit và bộ xử lý 32 bit
- 14. làm thế nào để bộ nhớ cache hình ảnh được tạo ra bởi php
- 15. Truy cập tệp cục bộ bằng NSURL
- 16. Xác định quyền truy cập bộ nhớ xấu trên Solaris
- 17. Bộ nhớ cục bộ và JSON
- 18. Cách truy cập các tệp cục bộ trong dự án
- 19. Làm cách nào để đặt ToString() mặc định trên PSObject được tạo cục bộ?
- 20. Làm thế nào để lưu các tệp html, javascript và css trong bộ nhớ cục bộ html5?
- 21. Truy cập bộ nhớ nhanh trong C++?
- 22. Làm cách nào để tạo một nhóm tự động phát hiện cục bộ để tiết kiệm bộ nhớ?
- 23. Làm cách nào để khai báo bộ nhớ cục bộ trong OpenCL?
- 24. Tôi làm cách nào để truy cập bộ nhớ cache mẫu? - Django
- 25. Làm cách nào để truy cập bộ nhớ sử dụng theo chương trình qua JMX?
- 26. Làm cách nào để truy cập bộ nhớ của các quá trình khác?
- 27. Các biến cục bộ chức năng được truy cập từ ngăn xếp như thế nào?
- 28. Cách lấy Giá trị bộ nhớ cục bộ
- 29. như thế nào một chương trình chạy trong bộ nhớ và cách bộ nhớ được xử lý bởi hệ thống
- 30. Làm cách nào để xóa một tạo tác cục bộ được lưu trong bộ nhớ cache mà maven được tìm nạp?
Tốt. Bạn có biết liệu đây có phải là tài liệu của Apple ở đâu đó không? –
Không. Tôi đã nhận được đường dẫn từ việc mở ứng dụng PhoneGap của mình trong iExplorer và tìm một tệp sqlite trong myApp/WebKit/LocalStorage/file__0.localstorage Tôi sẽ cập nhật câu trả lời của mình để bao gồm tên tệp. –
Chỉ cần FYI, nhưng với 5.1, vị trí của các thay đổi localStorage để sống trong Thư viện/Cache. –