一、如何在APP里加载本地html文件内容:
首先准备一个html文件,比如内容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>title</title>
</head>
<body>
<p>
<a href=“http://www.ABC.com”>go to app</a>
</p>
</body>
</html>
接下来,在APP里定义一个UIWebView,用来显示html文件内容:
//定义一个webview
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20, 375/WI * WIDTH, 667/HI * HEIGHT)];
//设置背景色
webView.backgroundColor = [UIColor clearColor];
//加载名为index.html的文件
NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"index.html" withExtension:nil];
NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
[webView loadRequest:request];
//控制缩放以适应屏幕
[webView setScalesPageToFit:YES];
//将webview添加到主屏幕
[self.view addSubview:webView];
上面的代码实现了加载html的内容,如果需要点击html的链接,跳转到APP页面,需要加上下面这一行设置:
webView.delegate = self;
如果加上这一行之后会报incompatible type错误,需要把.h文件更改如下,其中MyViewController换成自己的ViewController名字:
@interface MyViewController : UIViewController<UIWebViewDelegate>
并且实现如下函数:
- (BOOL)webView:(UIWebView *)_webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {//点击了链接
//这里实现跳转的代码
NSString *url = [[request URL] absoluteString];//得到链接
NSRange range = [url rangeOfString:@"ABC"];//链接是否包含特征字符串
if (range.location != NSNotFound) {
//XXX APP处理
return NO; // 返回NO说明不让链接跳转
}
}
return YES;
}
这样就完成了点击链接跳转到APP处理的功能。
如果点击网页里的包含“ABC”的链接,则会进入上面XXX处App的处理逻辑。