2012-05-08 74 views
0

即时通讯在我的应用程序中开发uiwebview。 此UIWebView显示HTML5页面,并具有访问本地数据库并显示菜单列表的JavaScript。使用xcode将sample.db文件从应用程序的文档目录复制到本地safari/databases目录

问题是我需要从应用程序的文档目录中复制这个数据库,并将其粘贴到safari/databases文件夹..所以我的JavaScript文件可以访问这个数据库并显示文件列表。

但是从文件夹复制文件到Safari浏览器/数据库文件夹 这里没有成功是我的代码:

NSString *databasepath=[NSString stringWithFormat:@"~/Library/%@/%@",@"safari",@"databases"]; 

    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSError *error; 

NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"sfa.db" ofType:nil]; 
[fileManager copyItemAtPath:resourcePath toPath:databasepath error:&error]; 

任何帮助将b赞赏。 在此先感谢。


感谢您的所有回复。虽然它不能解决我的问题。

1)我想javascript连接位于我的应用程序的文档目录中的现有sqlite3数据库。 2),但的openDatabase()方法总是指向Safari浏览器/数据库目录

3)无论我得到了一种B,能够在的openDatabase(点文档目录)方法 OR 一些其他的方式保存副本我的sqlite3数据库从我的应用程序的文档目录到Safari /数据库

或 任何其他方式来解决此问题。

回答

0

我使用功能stringByEvaluatingJavaScriptFromString 这里解决我的问题是我的代码:

在我的模型

-(void)webViewDidFinishLoad:(UIWebView *)webView { 
//getMenuItems is fetches items from database 
    [self getMenuItems]; 
//array items converted to string seperated by "," 
    NSString *string = [[arr valueForKey:@"description"] componentsJoinedByString:@","]; 

//load is javascript function 
    NSString *str=[NSString stringWithFormat:@"load('%@');",string]; 

[web stringByEvaluatingJavaScriptFromString:str]; 
} 

在我的HTML

function load(example_array){ 
     var example_array=example_array.split(","); 
    var select = document.getElementById("ddlMenu"); 

     for(i=0;i<=example_array.length-1;i++) { 
     select.options[select.options.length] = new Option(example_array[i], i); 
    } 

    } 
2

您的应用程序沙箱外没有写入权限。虽然这可能在模拟器上工作,但它不会在设备上。

您需要找到不同的解决方案。一种方式是打电话给在WebView中的JavaScript函数从您的视图控制器来复制数据:-(void) stringByEvaluatingJavaScriptFromString

+0

请对一个小细节我怎么能使用 - (void)stringByEvaluatingJavaScriptFromString将数据从应用程序的文档目录复制到Safari /数据库 – Sangeeta

+0

您可以例如将base64编码的文件数据传递给一个javascript函数。您可以使用该功能执行任何您喜欢的JavaScript。这是如何工作的将取决于数据库的复杂性和可用的javascript方法。 – FelixLam

-1
NSString * returnValue = [WebView stringByEvaluatingJavaScriptFromString:@"SOME JAVASCRIPT"]; 

你可以试试这个。

相关问题