2

次のような JavaScript 関数を呼び出したい:

- (void)alertMe:(NSString *)msg {
[[[UIAlertView alloc] initWithTitle:@"Alert" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}

function alertMe(msg) {
alert(msg);
}

HTMLファイルがXCodeのUIWebViewにロードされている場合、XCodeを使用して呼び出すにはどうすればよいですか

4

3 に答える 3

6

デリゲート メソッド UIWebView を使用する

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

JavaScript 関数のクエリ文字列を実装する

于 2013-08-23T09:53:06.530 に答える
4

EasyJSWebViewを使用して、 からのネイティブObjective-Cメソッドの呼び出しを簡単に実装できますJavaScript。より便利な方法は、JS呼び出すすべてのメソッドを保持するクラスを実装し、EasyJSWebView を引数とする UIWebView コントロール オブジェクト サブクラスでそのクラスをインスタンス化することです。

JSInterface例:すべてのネイティブ Obj-C メソッドを保持するクラスを作成しました

カスタムメソッドがあります

- (void)initializeJSInterfaceForWebView:(EasyJSWebView *)webView {
    self.jsInterface.appDelegate = appDelegate;
    self.jsInterface.webView.delegate = self;
    [webView addJavascriptInterfaces:self.jsInterface WithName:@"nativeInterface"];
}

それは初期化されますEasyJSWebView

インスタンス化します

self.jsInterface = [JSInterface initWithView:self];
[self initializeJSInterfaceForWebView:self.webView];

たとえば、次のネイティブObjective-Cメソッドがあります。

- (void) printLog:(NSString *)msg {
    NSLog(@"%@", msg);
}

オブジェクト名JavaScriptを使用してネイティブ メソッドを呼び出すには、次のようにします。nativeInterface

nativeInterface.printLog("This is only a test.");
于 2016-03-03T08:04:20.017 に答える
1

JavaScript 関数 ei のクエリ文字列を実装することができます。

function getQueryString(){ 
var mySearch = window.location.search.substr(1).split("&");

     if (mySearch!="") 
     {
          for(var x=0;x<mySearch.length;x++) {
                // loop to all your query string here
          }

     }
}//end function

または、メソッドを使用することもできます

[webView stringByEvaluatingJavaScriptFromString:(NSString*)]

次のようなローカル JavaScript と呼ぶことができます。

[webView stringByEvaluatingJavaScriptFromString:@"javascript:myJSFunction()"];

ただし、このメソッドは 内でのみ呼び出すことができ、webViewDidFinishLoad:(UIWebView *)webViewおよび/またはwebView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationTypeメソッド内で呼び出す場合は であるreturn必要がありますNO

于 2014-01-29T04:37:10.967 に答える