标签:mic center word idf tor post 执行 arc nsobject
原址:http://blog.csdn.net/lwjok2007/article/details/47058101
从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了。
下面我们就简单了解一下这个框架
首先我导入framework
方法如下
点击Linked Frameworks and Libraries 的添加后 选择 JavaScriptCore.framework
选中JavaScriptCore.framework后 点击右下角Add 添加完成
好 创建完成之后我们导入一下头文件
点进去 会看到如下几个方法
#import "JSContext.h"
#import "JSValue.h"
#import "JSManagedValue.h"
#import "JSVirtualMachine.h"
#import "JSExport.h"
这些方法我们等会再细讲
下来我们创建一个UIWebView 用来测试
创建UIWebView
初始化,添加,打开网址
运行效果如下
下面我们来实现UIWebView的几个代理方法
首先我们看下它的代理方法
每个方法的作用等会在带里面做注释
首先我们添加协议
实现代理方法
每个方法是什么时候调用都在注释里面
下来我们先尝试用oc调用一下js方法
执行效果如下:
好了,我们已经实现了iOS 调用js
1、需要在网页load完毕之后才能调用
2、执行js语句
原址:http://www.2cto.com/kf/201402/281505.html
本例子是为了让大家能快速开发出OC调用JS功能的一个简单的例子。
1、准备一个本地化的html网页,如jsIOS.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<meta
http-equiv= "content-type" content= "text/html;charset=utf-8" > <title>js调用oc</title> <script
type= "text/javaScript" > function
postStr(str1,str2){ document.getElementById( "text1" ).value=str1; document.getElementById( "text2" ).value=str2; return document.getElementById( "text3" ).value; //return
"javaScript返回值啦"; } </script> <p><input
type= "text" id= "text1" value= "实参1" ></p> <p><input
type= "text" id= "text2" value= "实参2" ></p> <p><input
type= "text" id= "text3" value= "返回值" ></p> |
2、将此html文件放到项目代码目录里面,如图:
3、拖一个UIWebView控件和UIButton控件到xxxViewController对应的.xib或.storyboard视图的UIView上;
在xxxViewController的.h文件中分别声明UIWebView类型变量和UIButton类型的变量,以及一个按钮点击事件(并且跟视图里面的控件连线),
并且添加一个UIWebViewDelegate类型的委托。<喎?"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+eHh4Vmlld0NvbnRyb2xsZXIuaM7EvP7E2sjdyOfPwqO6PC9wPgo8cD48L3A+CjxwIGNsYXNzPQ=="p1">
1
2
3
4
5
6
7
|
# import <uikit
uikit.h= "" > @interface ViewController
: UIViewController <uiwebviewdelegate> @property (nonatomic,retain)
IBOutlet UIWebView *webview; @property (nonatomic,retain)
IBOutlet UIButton *button; -(IBAction)IOS_JS:(id)sender; @end </uiwebviewdelegate></uikit> |
4、在xxxViewController.m文件中实现通过点击事件,调用javaScript的方法传递多个参数并取得返回值。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
// //
ViewController.m //
IOS_JS_01 // //
Created by IMAC on 14-2-25. //
Copyright (c) 2014年 Wanggsx. All rights reserved. // # import "ViewController.h" @interface ViewController
() @end @implementation ViewController @synthesize webview; -
( void )viewDidLoad { [ super viewDidLoad]; //设置webView webview.backgroundColor
= [UIColor clearColor]; //webview.scalesPageToFit
=YES; webview.delegate
=self; //找到jsIOS.html文件的路径 NSString
*basePath = [[NSBundle mainBundle]bundlePath]; NSString
*helpHtmlPath = [basePath stringByAppendingPathComponent:@ "jsIOS.html" ]; NSURL
*url = [NSURL fileURLWithPath:helpHtmlPath]; //加载本地html文件 [webview
loadRequest:[NSURLRequest requestWithURL:url]]; } /* *
点击事件 *
调用javaScript的方法postStr(str1,str2)并取得返回值 *
输出返回值到控制台 */ -(IBAction)IOS_JS:(id)sender { //NSString
*str = [self.webview stringByEvaluatingJavaScriptFromString:@"postStr();"]; //要传递的参数一 NSString
*str1 = @ "我来自于oc" ; //要传递的参数二 NSString
*str2 = @ "我来自于地球" ; NSString
*str = [self.webview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@ "postStr(‘%@‘,‘%@‘);" ,str1,str2]]; NSLog(@ "JS返回值:%@" ,str); } -
( void )didReceiveMemoryWarning { [ super didReceiveMemoryWarning]; } @end |
iOS js oc相互调用JavaScriptCore(一)
标签:mic center word idf tor post 执行 arc nsobject
原文地址:http://www.cnblogs.com/xujiahui/p/6011977.html