EasyJSWebView 是类似 Android  javascriptInterface 的 uiwebview js 调用原生代码框架

示例代码:

先建一个MyJSInterface接口

@interface MyJSInterface : NSObject - (void) test;
- (void) testWithParam: (NSString*) param;
- (void) testWithTwoParam: (NSString*) param AndParam2: (NSString*) param2;
- (NSString*) testWithRet;
@end

然后把MyJSInterface 添加到 UIWebView.

MyJSInterface* interface = [MyJSInterface new];
[self.myWebView addJavascriptInterfaces:interface WithName:@"MyJSTest"];
[interface release];

在Javascript中, 你可以使用如下代码调用 Objective-C 方法.

MyJSTest.test();
MyJSTest.testWithParam("ha:ha");
MyJSTest.testWithTwoParamAndParam2("haha1", "haha2");
var str = MyJSTest.testWithRet();

你也可以通过回调获取到方法执行结果

Objective-C 代码如下:

- (void) testWithFuncParam: (EasyJSDataFunction*) param{
  NSLog(@"test with func");
  NSString* ret = [param executeWithParam:@"blabla:\"bla"];
  NSLog(@"Return value from callback: %@", ret);
}

js调用方法如下:

MyJSTest.testWithFuncParam(function (data){
  alert(data); //data would be blabla:"bla return "some data";
});

转:EasyJSWebView的更多相关文章

  1. EasyJSWebView原理分析

    概述 在iOS6之前,native只能调用webiew里的js代码,官方没有提供js调用native方法的接口.到了iOS7,官方提供了JSContext用来与js交互,native和js可以双向调用 ...

  2. 李洪强iOS经典面试题147-WebView与JS交互

    李洪强iOS经典面试题147-WebView与JS交互   WebView与JS交互 iOS中调用HTML 1. 加载网页 NSURL *url = [[NSBundle mainBundle] UR ...

  3. JavaScriptCore 使用

    JavaScriptCore JavaScriptCore是webkit的一个重要组成部分,主要是对JS进行解析和提供执行环境.代码是开源的,可以下下来看看(源码).iOS7后苹果在iPhone平台推 ...

  4. UIWebView1-b

    随着H5的强大,hybrid app已经成为当前互联网的大方向,单纯的native app和web app在某些方面显得就很劣势.关于H5的发展史,这里有一篇文章推荐给大家,今天我们来学习最基础的基于 ...

  5. 在webView 中使用JS 调用 Android / IOS的函数 Function

    最近做一个项目,混合了NativeCode 和 HTML,为了便于JS 调用App的一些方法,统一封装一个Js方法,记录如下 Android 端首先要再WebView中允许JS的调用 WebView ...

  6. android js 互相调用

    代码地址如下:http://www.demodashi.com/demo/13107.html android js 互相调用 第二版 支持js匿名函数接收 支持js json对象接收 支持js函数返 ...

  7. OC与JS交互之UIWebView

    随着H5的强大,hybrid app已经成为当前互联网的大方向,单纯的native app和web app在某些方面显得就很劣势.关于H5的发展史,这里有一篇文章推荐给大家,今天我们来学习最基础的基于 ...

  8. iOS与JS相互传值与交互

    JavaScriptCore是webkit的一个重要组成部分,主要是对JS进行解析和提供执行环境.iOS7后苹果在iPhone平台推出,极大的方便了我们对js的操作.我们可以脱离webview直接运行 ...

随机推荐

  1. 软工实践l练习一一利用github托管项目

    这次实践的主题是在windows环境下将项目通过git将项目托管到github上.通过实践,基本掌握一些git命令的使用,在github上注册账号并学会创建repositly和organization ...

  2. angularJS1笔记-(13)-自定义指令(controller和controllerAs实现通信)

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  3. 对it行业的一些看法

    随着世界产业转移的加速,欧美.日本等发达国家将大量的软件开发业务转移到中国.印度等国家,随之而来的是这些国家对it人才的急切需求! 对比国内的大学生就业形势而言,无疑是it相关专业的毕业生就业压力较少 ...

  4. php $_SERVER['HTTP_USER_AGENT'] 2

    //mobile  false pc   true no pc    function is_mobile(){        $agent = strtolower($_SERVER['HTTP_U ...

  5. 深度学习:卷积神经网络(convolution neural network)

    (一)卷积神经网络 卷积神经网络最早是由Lecun在1998年提出的. 卷积神经网络通畅使用的三个基本概念为: 1.局部视觉域: 2.权值共享: 3.池化操作. 在卷积神经网络中,局部接受域表明输入图 ...

  6. 血液检测 & 创业骗局

    血液检测 & 创业骗局 硅谷血液检测公司 Theranos http://www.sohu.com/a/236659372_100053377 https://www.jianshu.com/ ...

  7. UpdateBatch与事务处理的一点总结

    对于某些设置或者提交,如果希望是全部修改完毕后才确定生效,可以将DataSet的LockType:=ltBatchOptimistic,这样就可以了.然后每次做的修改和改动都暂时保存在缓存中,必须通过 ...

  8. C# 房贷计算器

    设计背景 百度小程序中的房贷计算器不能满足我个人的需求,故而开发一个.NET小程序.希望后期能用JS重写,发布在网上供大家使用. 设计思路 根据百度公式:等额本息月还款 = [贷款本金×月利率×(1+ ...

  9. CentOS 7 上安装(LAMP)服务 Linux,Apache,MySQL,PHP

    介绍 LAMP 是现在非常流行的 WEB 环境, 是 Linux,Apache,MySQL,PHP 的缩写.数据存储在 MySQL 中,动态内容由 PHP 处理. 在本指南中,我们将演示如何在 Cen ...

  10. java中new两个对象,在堆中开辟几个对象空间

    内存堆中有两个对象,两个对象里都有独立的变量.p1 p2指向的不是同一个内存空间. 也可以这样描述引用p1,p2指向两个不同的对象.