一.
做一个IPHONE应用,界面很简洁,一个uinavigationbar, 一个uiwebview控件。
1、uinavigationbar负责显示导航
2、uiwebview负责加载制定的网址内容
需要实现的功能:点击 uiwebview里 网页的链接后,支持uinavigationbar的“返回”功能?
你是想点击链接实现页面的返回
[self.navigationController popViewControllerAnimated:YES];
还是想点击上面的返回键,回到网页的上一页
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// 下一个界面的返回按钮
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
temporaryBarButtonItem.title = @"back";
temporaryBarButtonItem.target = self;
temporaryBarButtonItem.action = @selector(back:);
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;}
return self;}
-(void) back
{
if ([webView canGoBack]) {
[webView goBack];
}
else
{
[self.navigationController popViewControllerAnimated:YES];
}
}
你要想点击链接返回
- (void)webViewDidFinishLoad:(UIWebView *)webView {
if ([webView.request.URL isEqual: @"你的链接地址"]) {
[self.navigationController popViewControllerAnimated:YES];
}}
二.
oc调用js里的方法并传参数
-(void)webViewDidFinishLoad:(UIWebView*)webView{
//首先创建JSContext对象(此处通过当前webView的键获取到jscontext)
JSContext*context =[self.WebViewvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
//testMobile 为js里的方法名
//一个参数
NSString*jsFunctStr=[NSStringstringWithFormat:@"testMobile('%@')",@"oc调用了js的内容"];
[contextevaluateScript:jsFunctStr];
////二个参数
//NSString *jsFunctStr1=@"testMobile('参数a','参数b')";
//[context evaluateScript:jsFunctStr1];
}