iOS学习笔记

JS与OC交互--简单使用(打电话)

2016-08-14  本文已影响150人  学长的日常

.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 文件

html.png

storyboard

storyboard.png

运行结果

学长的日常.png
上一篇下一篇

猜你喜欢

热点阅读