zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JS与OC交互--简单使用

JS 简单 -- 交互 OC 使用
2023-09-11 14:18:57 时间

直接上代码

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

storyboard

运行结果