在WebApp中怎么使用JS调用iOS的函数?

在WebApp中怎么使用JS调用iOS的函数


慕森王
浏览 665回答 1
1回答

守着一只汪

先看一下Web中,我们给h1标签添加一个onclick事件,让它在被点击之后,修改当前的url。Web中的HTML代码:<html><head><script>function getInfo(name){window.location = "/getInfo/"+name;}</script></head><body><h1 onclick="getInfo('why')">Name</h1></body></html>iOS中,先拖拽WebView,访问localhost,然后通过WebView的委托事件监听url跳转操作,并且把跳转截取下来。也就是说,在onclick的时候,普通浏览器灰跳转到那个url,但是在iOS的这个WebView里面,这个跳转会被拦截,用这种方式可以巧妙地实现JS调用iOS的原生代码://// DWViewController.m// DareWayApp//// Created by why on 14-6-3.// Copyright (c) 2014年 DareWay. All rights reserved.//#import "DWViewController.h"@interface DWViewController ()@property (weak, nonatomic) IBOutlet UIWebView *myWebview; // 主页面@end@implementation DWViewController- (void)viewDidLoad{[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.// 适配iOS6的状态栏if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {_myWebview.frame = CGRectMake(0,20,self.view.frame.size.width,self.view.frame.size.height-20);}// 加载制定的URLNSURL *url =[NSURL URLWithString:@"http://localhost"];NSURLRequest *request =[NSURLRequest requestWithURL:url];[_myWebview setDelegate:self];[_myWebview loadRequest:request];}// 网页中的每一个请求都会被触发-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{// 每次跳转时候判断URLif([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/why"]){NSLog(@"why");return NO;}return YES;}- (void)didReceiveMemoryWarning{[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

WebApp