Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用单个参数从Javascript调用Objective-C方法并在Xcode中处理它_Javascript_Ios_Ipad_Webview_Native - Fatal编程技术网

如何使用单个参数从Javascript调用Objective-C方法并在Xcode中处理它

如何使用单个参数从Javascript调用Objective-C方法并在Xcode中处理它,javascript,ios,ipad,webview,native,Javascript,Ios,Ipad,Webview,Native,我不熟悉这种应用程序。有人能帮我满足我的要求吗。 我有一个iPad应用程序,其中javascript使用参数调用本机函数。我在webview shouldStartLoadWithRequest…delegate方法中得到了相同的结果。我能够调用从javascript发送的本机函数,但当函数带有参数时,如何获取函数和参数。 请引导我 在下面张贴代码 window.location.href = "js2ios://getNotiData(" +groupId + ")"; 首先,来自JS的调

我不熟悉这种应用程序。有人能帮我满足我的要求吗。 我有一个iPad应用程序,其中javascript使用参数调用本机函数。我在webview shouldStartLoadWithRequest…delegate方法中得到了相同的结果。我能够调用从javascript发送的本机函数,但当函数带有参数时,如何获取函数和参数。 请引导我

在下面张贴代码

window.location.href = "js2ios://getNotiData(" +groupId  + ")";

首先,来自JS的调用应该是:

window.location.href = "js2ios://getNotiData?groupId=XXX
然后,在包含UIWebView的UIViewController中,需要为web视图添加一个名为:UIWebViewDelegate的委派。以下方法对您来说很重要:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
      NSString *urlString = [[request URL] absoluteString];
      if ([urlString hasPrefix:@"js2ios:"]) {
           NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:request.url resolvingAgainstBaseURL:NO];
           NSArray *queryItems = urlComponents.queryItems;
           NSString *param1 = [self valueForKey:@"groupId" fromQueryItems:queryItems];

           // NOW CALL YOUR OBJECTIVE-C METHOD WITH param1 !

           return NO;
      }
}

非常感谢你的回答。我尝试了下面的方法,我相信你的是最好的代码。我也在发布我的代码。NSArray*urlArray=[urlStr componentsSeparatedByString:@?];NSString*参数字符串;如果[URLARY count]>1{paramsString=[URLARY objectAtIndex:1];}NSString*strGroupid=@groupId=;paramsString=[paramsString substringFromIndex:[strGroupid长度]];