关于OC中遇到调用H5与其交互的

  • OC 调用 JS

/* 
 1. OC 调用 JS  只需在所需要传值的地方获取到JS中的点击方法即可 
    例如: 点击方法是下面的这个 functionAction 
 */  

- (void)functionAction {  
    //如果需要传递参数 给 JS,则初始化参数  
    NSString *str2 = @"1234mkfg";  
    NSString *str3 = @"kdsfj";  
   //传参数  
   [_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"func('%@', '%@');", str2, str3]];  
}
  • 用苹果自带的返回键按钮处理如下(自定义的返回按钮)
- (void)back:(UIBarButtonItem *)bon{
    if ([self.webView canGoBack]) {
    [self.webView goBack];
}else{
    [self.view resignFirstResponder];
    [self.navigationController popViewControllerAnimated:YES];
   }
}
  • 如果是H5页面里面自带的返回按钮处理如下:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString * requestString = [[request URL] absoluteString];
requestString = [requestString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//获取H5页面里面按钮的操作方法,根据这个进行判断返回是内部的还是push的上一级页面
if ([requestString hasPrefix:@"goback:"]) {
    [self.navigationController popViewControllerAnimated:YES];
}else{
    [self.webView goBack];
}
return YES;
}
  • 获取当前页面的title和url
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[SVProgressHUD dismiss];
 NSString * title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];//获取当前页面的title
self.title = title;
//获取当前网页的html
self.currentURL = webView.request.URL.absoluteString;
NSLog(@"title-%@--url-%@--",self.title,self.currentURL);
NSString *lJs = @"document.documentElement.innerHTML";
self.currentHTML = [webView stringByEvaluatingJavaScriptFromString:lJs];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容