JS与OC的简单交互

来源:互联网 发布:知柏地黄丸治疗早泄 编辑:程序博客网 时间:2024/05/16 15:40



直接上代码
.m文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#import "ViewController.h"
@interface ViewController () @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 文件

1.jpg

storyboard

2.png

运行结果

3.png

0 0
原创粉丝点击