原地址:http://www.2cto.com/kf/201402/281514.html
1、准备一个本地化的html网页,如jsIOS.html
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<meta http-equiv=
"content-type"
content=
"text/html;charset=utf-8"
>
<title>js调用oc</title>
<script type=
"text/javaScript"
>
function postStr(){
return
document.getElementById(
"text1"
).value;
//return "javaScript返回值啦";
}
</script>
<p><input type=
"text"
id=
"text1"
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>
|
代码如下:
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
|
#
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()并取得返回值
* 输出返回值到控制台
*/
-(IBAction)IOS_JS:(id)sender
{
NSString *str = [self.webview stringByEvaluatingJavaScriptFromString:@
"postStr();"
];
NSLog(@
"JS返回值:%@"
,str);
}
- (
void
)didReceiveMemoryWarning
{
[
super
didReceiveMemoryWarning];
}
@end
|