oc-->js stringByEvaluatingJavaScriptFromString,其参数是一NSString 字符串内容是js代码(这又可以是一个js函数、一句js代码或他们的组合),当js函数有返回值或一句js代码有值返回可通过stringByEvaluatingJavaScriptFromString的返回值获取。

js-->oc 利用webView的重定向原理(即重新在js中指定document.location的值,此为一url),只要在这个url字符串中按自定义的规则指定好所需调用oc中的函数和参数,然后通过OC中的shouldStartLoadWithRequest函数去捕获处理请求。

?
1
2
3
4
5
//APP调用webView加载的JS中的方法interfaceCalledByAPP,此例传入了两个参数
- (void)sendMessage:(id)sender {
    [self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"interfaceCalledByAPP(\"%@\",\"%@\")", @"2",@"333"]];
}

1
2
3
4
//JS向APP传值。首先实现UIWebView的代理,然后根据NSURLRequest的URL进行不同处理
//JS中的将要传递的数据作为URL重定向
var tempurl = "将要传递的值";
window.location.href= encodeURI(encodeURI(tempurl));

?
1
2
3
4
5
6
7
8
9
10
11
//webView的代理相应重定向
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    NSString *requestString = [[[request URL]  absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSLog(@"should-------");
    if ([requestString hasPrefix:@"url://"]) {
        //根据自己定义的规则,通过字符串的值,调用OC的方法。这里就输出一下字符串了。
        NSLog(@"===%@",requestString);
    }
    return YES;
}

实现OC与JS的交互相关推荐

  1. [转]OC与JS的交互详解

    事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...

  2. (0085)iOS开发之OC与JS交互高级用法(JavaScriptCore)

    前述:JavaScriptCore你不知道的OC与JS之间交互.OC与JS之间用model实现交互.通讯.传值!好玩! 几乎三年来一直断断续续接触OC与JS交互,每次觉得UIWebView OC与JS ...

  3. iOS OC与JS交互(WebView监听事件)

    在iOS应用的开发过程中,我们经常会使用到WebView,当我们对WebView进行操作的时候,有时会需要进行源生的操作.那么我记下来就与大家分享一下OC与JS交互. 首先先说第一种方法,并没有牵扯O ...

  4. OC与JS交互 初体会

    第一篇博客,有点小紧张.小期待,会不会有人看?有也好,没有也罢,权当自己图个乐儿,记录近来学到的知识.闲话少说,进入正题! OC与JS交互的方式:1.使用UIWebView通过拦截Request完成J ...

  5. 通过WebViewJavascriptBridge实现OC与JS交互

    这里照搬Github的Demo,其实还是很易懂的,首先,要在控制器的.h文件当中实现浏览器控件的协议: 1 #import <UIKit/UIKit.h> 2 3 @interface E ...

  6. Flutter开发Flutter与原生OC、Java的交互通信-1(47)

    我的文章讲过:(0085)iOS开发之OC与JS交互高级用法(JavaScriptCore) 前言:我们知道OC 在UIWebView 加载 H5中,常常需要OC 与 H5 之间进行交互调用.采取的方 ...

  7. OC和JS互相调用小框架

    鄙人不才献上一份UIWebView和JS交互的桥接框架 不多说直接上货吧!!! 献上框架.m文件的内部实现和代码注释 导入<objc/runtime.h> #import "UI ...

  8. iOS开发日记27-WebView与JS的交互

    今天博主有一个WebView与JS的交互的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. WebView与JS的交互分为两种种方式:1.在OC中调用JS 2.在JS中调用OC 网页试用[N ...

  9. js层级选择框样式_IOS和JS的交互,看这一篇文章就够了

    IOS和JS的交互,看这一篇文章就够了 创作不易,请珍惜,之后会持续更新,不断完善 Demo地址 目录 WKWebView使用.JS的交互 WKWebView使用.JS的交互 演示(本来想贴张GIF作 ...

最新文章

  1. 什么是停止词stopword
  2. 2022 专属程序员的桌面必备单品!
  3. Challenge: Machine Learning Basics
  4. 【IT资讯】年薪170万码农征友,条件让网友炸锅……
  5. [CTSC2017]吉夫特(思维+巧妙)
  6. SpringCloud Zuul(七)之POST Filter
  7. java泛型一定用包装类_你不知道的基本数据类型和包装类
  8. php代码审计是什么意思,php代码审计基础篇
  9. Error: ER_ACCESS_DENIED_ERROR: Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决办法
  10. 非线性微分方程线性化
  11. 微信第三方平台对接小程序发版
  12. 思岚A1与A2性能及建图测试比较
  13. PIL.image保存图片
  14. CPU、MCU、FPGA、SoC……这些芯片究竟是啥?
  15. 驱动加载错误:insmod: error inserting 'hello.ko': -1 Device or resource busy
  16. DameWare各种版本激活码-备份
  17. python依据出生日期判断星座(少量代码)
  18. E-puck2机器人系列教程-8.切换WIFI模式ESP32固件烧录
  19. 原始值和引用值类型及区别
  20. 远程桌面为啥会连接不上?

热门文章

  1. 正则基础之——\b 单词边界
  2. codeforces上红记
  3. Linux下shellcode的编写
  4. netty源码解解析(4.0)-2 Chanel的接口设计
  5. 【2017-02-19】数据类型、类型转换、常量、变量、转义符。
  6. Centos 安装mongodb
  7. C#的static constructor抛了异常会怎么处理?
  8. 用ASP创建MDaemon用户
  9. C++编写DLL的方法
  10. IOS基础之NSFounation框架的NSDictionary,NSMutableDictionary的使用