3

SQLiteUIWebViewにデータベースコンテンツを表示したい。そのために私はローカルHTMLファイルを持っています。JavaScript関数を呼び出すhtmlファイルのボディロードについて。Javaスクリプト内でObjective-cメソッドを呼び出す方法。ObjectivecからJavaSrciptにデータを取得する方法。

<html>
    <head>
        <!-- a script inline --> 
        <script language="JavaScript" TYPE="text/javascript">
            <!--
            function myJsFunc() 
            { 

                //here i want to call objective-c methods.

            } 
            // -->
            </script>
        </head>
    <Body Bgcolor=#800000 onload="myJsFunc(); return true;">

        </Body>
</html>

Objective-Cコード.....。

- (void)viewDidLoad
{
        [super viewDidLoad];
        NSString *path;
    NSBundle *thisBundle = [NSBundle mainBundle];
    path = [thisBundle pathForResource:@"Demo" ofType:@"html"];

    // make a file: URL out of the path
    NSURL *instructionsURL = [NSURL fileURLWithPath:path];
    [myWebView loadRequest:[NSURLRequest requestWithURL:instructionsURL]];
    [self.view addSubView:myWebView];
}
-(NSArray*)FetchingDataFromDataBase{

    // Code for retriving data from SQlite data Base, and return NSArray;
    return myArray;
}

関数myJSFunc()内で、どのように呼び出すことができますか-(NSArray*)FetchingDataFromDataBase.

4

1 に答える 1

1

Graver によって提供されたブログ投稿では、その方法が説明されています。

- (BOOL)webView:(UIWebView *)webView2 
      shouldStartLoadWithRequest:(NSURLRequest *)request 
      navigationType:(UIWebViewNavigationType)navigationType

クラスに上記のメソッドがある場合、このメソッドは新しいページが読み込まれる前に呼び出されます。このメソッドが YES を返した場合にのみ、新しいロード リクエストが処理されます。そのメカニズムを使用して、Objective-C 関数とやり取りします。

于 2012-04-23T01:50:47.183 に答える