谈 OC和JS的交互

1.  #import <JavaScriptCore/JavaScriptCore.h>

2.<UIWebViewDelegate>

3. @property(nonatomic,strong)UIWebView *webView;

    @property(nonatomic,strong)JSContext *context;

4. 在网页开始加载的时候,给web返回一个NSString的方法

-(void)webViewDidStartLoad:(UIWebView *)webView

{

//获取js的运行环境

_context =[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

__weak typeof(self)weakSelf = self;

_context[@"returnPosDicct"]= ^(){

NSString *str =[NSString stringWithFormat:@"lat=%@&lng=%@&workCity=%@",weakSelf.posDict[@"lat"],weakSelf.posDict[@"lng"],g_strCurrentCity];

return str;

};

}

5. 

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

{

MyLog(@"%@",error);// 网页加载失败的log

}

6.  JS调用OC的方法,JumpToPosition 是JS的方法名,并且传参到app中,赋给OC,OC方法名是JumpToPosition:,参数是args。

//网页加载完成调用此方法

- (void)webViewDidFinishLoad:(UIWebView*)webView

{

__weaktypeof(self) weakSelf =self;

_context[@"JumpToPosition"] = ^(){

NSArray*args = [JSContext  currentArguments];

[weakSelf  JumpToPosition:args];

};

}

7.  //OC调用JS ,JS方法名:change_share()

- (void)OCCallJS {

[_webViewstringByEvaluatingJavaScriptFromString:@"change_share()"];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 进入15年以后,在我们天朝越来越流行混编!尤其是腾讯的 变态APP微信小程序一出,撑起了混编的半边天! 废话不多说...
    白水灬煮一切阅读 1,322评论 0 2
  • 随着H5技术的兴起,在iOS开发过程中,难免会遇到原生应用需要和H5页面交互的问题。其中会涉及方法调用及参数传值等...
    Chris_js阅读 3,234评论 1 8
  • 一、简介 近两年随着HTML5的迅速发展与日趋成熟,越来越多的移动开发者选择使用HTML5来进行混合开发,不仅节约...
    RainyGY阅读 2,002评论 1 12
  • 1 oc 调用js 步骤1 先导入 头文件 #import <JavaScriptCore/JavaScri...
    进阶的蚊子阅读 339评论 0 2
  • 简介 iOS原生应用和web页面的交互大致上有以下这几种方法: JavaScriptCore(iOS7之后) 拦截...
    WolfTin阅读 1,294评论 0 1

友情链接更多精彩内容