2012-05-08 2 views
0

메신저를 사용하여 app.doc 파일을 앱의 문서 디렉토리에서 로컬 사파리/데이터베이스 디렉토리로 복사합니다. 이 UIWebView는 HTML5 페이지를 표시하며 로컬 db에 액세스하고 메뉴 목록을 표시하는 javascript가 있습니다.내 app에서 uiwebview를 개발하는 xcode

문제는 응용 프로그램의 문서 디렉토리에서이 데이터베이스를 복사하여 사파리/데이터베이스 폴더에 붙여 넣어야한다는 것입니다. 자바 스크립트 파일은이 db 및 파일 목록에 액세스 할 수 있습니다. 어떤 도움이 평가 B 것이다

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]; 

:

여기에/데이터베이스 폴더 사파리하는 문서 폴더에서 파일을 복사에는 성공은 내 코드입니다 그러나

. 미리 감사드립니다.


모든 답장을 보내 주셔서 감사합니다. 비록 내 문제를 해결하지 못했습니다 ..

1) 자바 스크립트를 내 응용 프로그램의 문서 디렉토리에있는 기존 sqlite3 데이터베이스에 연결하고 싶습니다. 2)하지만 수 OpenDatabase() 메소드는 항상 사파리/데이터베이스 디렉토리

3) 중 하나를 내가 얻을 수 OpenDatabase (에 문서 디렉토리을 지적 할 수 ㄱ하는 방법) 방법 또는 에 복사본을 유지하기 위해 다른 방법 포인트 내 응용 프로그램의 문서 디렉토리에서 사파리/데이터베이스 내 sqlite3를 데이터베이스의

또는 다른 방법으로이 문제를 해결합니다.

답변

0

내 코드 내 HTML에

-(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]; 
} 

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

앱의 샌드 박스 외부에 쓰기 권한이 없습니다. 이 기능은 시뮬레이터에서 작동하지만 기기에서는 작동하지 않습니다.

다른 해결 방법을 찾아야합니다. 한 가지 방법은 데이터를 복사하기 위해의 ViewController에서 웹뷰에서 자바 스크립트 함수를 호출 할 수 있습니다 : -(void) stringByEvaluatingJavaScriptFromString

+0

에 대한 약간의 세부 사항을 제공 내가 어떻게 할 수있는하십시오 사용 - (void) stringByEvaluatingJavaScriptFromString 응용 프로그램의 문서 디렉토리에서 Safari/Databases로 데이터 복사 – Sangeeta

+0

수 있습니다. 예를 들어 base64로 인코딩 된 파일 데이터를 javascript 함수로 전달합니다. 이 함수를 사용하여 원하는 자바 스크립트를 실행할 수 있습니다. 이 작동 방식은 데이터베이스의 복잡성과 사용 가능한 자바 스크립트 방법에 따라 다릅니다. – FelixLam

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

이 하나를 시도 할 수 있습니다. 내 모델

: 나는 기능 stringByEvaluatingJavaScriptFromString 여기 를 사용하여 내 문제를 해결

관련 문제