一原生应用修改 html
首先,加载 index.html
- (void)viewDidLoad
{
{
[superviewDidLoad];
NSURL*url
= [[NSBundlemainBundle]URLForResource:@"index"withExtension:@"html"];
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
[self.webViewloadRequest:request];
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
[self.webViewloadRequest:request];
}
其次,实现 webView 代理
- (void)webViewDidFinishLoad:(nonnullUIWebView*)webView
{
{
//当加载完成的时候就可以修改 html 的内容
//比如获取 img,p,button 等标签
NSString*str
=
@"var img = document.getElementsByTagName('img')[0];";
//增删改查等
NSString*str1
=
@"img.remove();";
//最主要的方法,通过此方法,就可以修改加载的页面啦
[webViewstringByEvaluatingJavaScriptFromString:str];
[webView
stringByEvaluatingJavaScriptFromString:str1];
}
二.html 调用原生方法
通过此方法,就可以达到调用系统资源的目的,比如相册,相机等
首先,在 index.html 中添加单机事件
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<head>
<meta charset="UTF-8">
</head>
<body>
<button
onclick="btnClick();">访问相册</button>
<script>
function btnClick(){
function btnClick(){
window.location.href ='lyl://btnClick';
}
</script>
</body>
</body>
</html>
接着,在
viewDidLoad里加载index.html
- (void)viewDidLoad
{
[superviewDidLoad];
NSURL *url = [[NSBundlemainBundle]URLForResource:@"index"withExtension:@"html"];
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
[self.webViewloadRequest:request];
{
[superviewDidLoad];
NSURL *url = [[NSBundlemainBundle]URLForResource:@"index"withExtension:@"html"];
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
[self.webViewloadRequest:request];
}
//实现代理
- (BOOL)webView:(nonnullUIWebView*)webView
shouldStartLoadWithRequest:(nonnullNSURLRequest*)request
navigationType:(UIWebViewNavigationType)navigationType
{
NSString *url = request.URL.absoluteString;
NSRange range = [url rangeOfString:@"lyl://"];
{
NSString *url = request.URL.absoluteString;
NSRange range = [url rangeOfString:@"lyl://"];
NSUIntegerlocation
= range.location;
if(location
!=
NSNotFound)
{
{
//将url 处理得到方法名’btnClick'
NSString*str
= [url
substringFromIndex:location + range.length];
//转换成方法,然后调用
SELsel = NSSelectorFromString(str);
[selfperformSelector:selwithObject:nil];
}
//转换成方法,然后调用
SELsel = NSSelectorFromString(str);
[selfperformSelector:selwithObject:nil];
}
return
YES
}
//实现方法
-(void)btnClick
{
{
NSLog(@“我点,我点");
}