iOS js 全局、交互实现

iOS  js交互只能在特定的页面里,不能设置为全局(个人经验,如果可以,望告知)

ios调用js的方法 包含头文件<JavaScriptCore/JavaScriptCore.h> <UIWebViewDelegate>

js中代码

function  getdatafromios(result){

$("#barcodediv").html(""+result);

}

法1:

JSContext*context = [webView    valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

NSString*testJS = [NSString  stringWithFormat:@"getdatafromios('%@');",strResult.strScanned];//传参

[context  evaluateScript:testJS];

法2;

NSString*testJS = [NSString  stringWithFormat:@"getdatafromios('%@');",strResult.strScanned];//传参

[self.webView stringByEvaluatingJavaScriptFromString:testJS];

js调用ios的方法

JSContext*context = [webViewvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

context[@"jsScanTest"] = ^(   

ScanViewController*SVC = [[ScanViewController  alloc]init];

[self  presentViewController:SVCanimated:YEScompletion:nil];

);

js中代码

functionshowiOSToast() {

javascript:jsScanTest();

}

实现全局交互:把调用的ios方法放到- (void)webViewDidFinishLoad:(UIWebView*)webView;里面

- (void)webViewDidFinishLoad:(UIWebView*)webView {

JSContext*context = [webViewvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

JSObject*test = [JSObject new];

webView2= webView;

context[@"jsScanTest"] = test;

test.delegate=self;

}

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

相关阅读更多精彩内容

  • 随着H5技术的兴起,在iOS开发过程中,难免会遇到原生应用需要和H5页面交互的问题。其中会涉及方法调用及参数传值等...
    Chris_js阅读 8,316评论 1 8
  • 跟原生开发相比,H5的开发相对来一个成熟的框架和团队来讲在开发速度和开发效率上有着比原生很大的优势,至少不用等待审...
    大冲哥阅读 5,818评论 0 7
  • 一、简介 近两年随着HTML5的迅速发展与日趋成熟,越来越多的移动开发者选择使用HTML5来进行混合开发,不仅节约...
    RainyGY阅读 5,916评论 1 12
  • 本博客主要分以下几个方面来介绍iOS中的JavaScriptCore JavaScriptCore简介 JavaS...
    dullgrass阅读 9,751评论 1 38
  • 灵感篇 1、经常洗头、洗澡、洗枕巾 “洗”这个字,就是用来洗刷固有的思维,陈旧的思维,僵硬的思维,你肯定也有过,目...
    懒人经济研究所阅读 3,619评论 0 14

友情链接更多精彩内容