h5怎么调用IOS 的方法

@interface ViewController ()

@property (nonatomic, strong) UIWebView *webView;

@end

然后在viewDidLoad方法中初始化这个WebView实例,并设置其要访问的网站的URL,然后将其添加到视图中去:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, SCREENHEIGHT)];
    NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
    [self.view addSubview: self.webView];
    [self.webView loadRequest:request];
}

这样其实就完成了

IOS那边是通过以上方式打开了我h5的网页的。
请问,我如何调用他写好的方法。比如安卓就直接用window.android.方法名() 就可以了。
那么请问怎么调用IOS的方法?麻烦了。。

阅读 9.7k
8 个回答

让iOS客户端使用jscontext相关的类注册js方法,你就可以在h5里面直接调用js了

原理就是两句话:
1) UIWebView 之前通过拦截 URL 请求协议(一般是自定义的那种)
2) WKWebView 可以提供接口,这跟 android 的比较类似.
具体的话,这个还是帖网址比较好,
一来这是比较常见的问题,网上一搜索一大把.
https://tech.youzan.com/jsbri...

如果你是遇到更具体的问题,再来追问.

UIWebview用JavaScriptCore监听JS的调用

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    //定义好JS要调用的方法, JSFunction是JS调用的方法
    context[@"JSFunction"] = ^() {

    };
}

WebViewJavaScript 这个可以实现OC和JS的通信

hbuilder,可以用js调用手机的api

WebViewJavaScript或是桥接,超简单的互调框架

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题