JS与OC交互--简单使用

作者: GentlePrince | 来源:发表于2016-09-07 23:27 被阅读379次

    直接上代码
    .m文件

    #import "ViewController.h"
    @interface ViewController () <UIWebViewDelegate>
    @property (weak, nonatomic) IBOutlet UIWebView*webView;
    @end
    @implementation ViewController
    - (void)viewDidLoad 
    {    
      [super viewDidLoad]; //通过本地html文件加载网页
      [self.webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle]URLForResource:@"test" withExtension:@"html"]]];
    }
    - (void)call 
    {    //拨打电话    
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];
    }
    //是否允许加载从webview获得的请求
    /* 
    *该方法可以实现js调用OC 
    *js和OC交互的第三框架可以使用:WebViewJavaScriptBridge 
    */
    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    {    
    //获得html点击的链接    
    NSString *url = request.URL.absoluteString;    
    //设置协议头    
    NSString *scheme = @"zc://";    
    //判断获得的链接前面是否包含设置头    
    if([url hasPrefix:scheme])
    {        
    //切割字符串
    NSString *methodName = [url substringFromIndex:scheme.length];
    //调用打电话的方法
    [self performSelector:NSSelectorFromString(methodName) withObject:nil];          
          return NO;    
     }else{            
          return YES;    
        }
    }
    

    html 文件


    640.jpg

    storyboard

    640.png

    运行结果

    640.png

    相关文章

      网友评论

      • Da_Lan:现在都用JavaScriptCore了,这样截取URL的方法已经不好用了

      本文标题:JS与OC交互--简单使用

      本文链接:https://www.haomeiwen.com/subject/nfhsettx.html