一原生应用修改 html
首先,加载 index.html
- (
void
)viewDidLoad
{
{
[superviewDidLoad];
NSURL
*url = [[
NSBundle
mainBundle
]
URLForResource
:
@"index"
withExtension
:
@"html"
];
NSURLRequest *request = [ NSURLRequest requestWithURL :url];
[ self . webView loadRequest :request];
NSURLRequest *request = [ NSURLRequest requestWithURL :url];
[ self . webView loadRequest :request];
}
其次,实现 webView 代理
- (
void
)webViewDidFinishLoad:(
nonnull
UIWebView
*)webView
{
{
//当加载完成的时候就可以修改 html 的内容
//比如获取 img,p,button 等标签
NSString
*str =
@"var img = document.getElementsByTagName('img')[0];"
;
//
增删改查等
NSString
*str1 =
@"
img
.remove();"
;
//最主要的方法,通过此方法,就可以修改加载的页面啦
[webView
stringByEvaluatingJavaScriptFromString
: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
{
[ super viewDidLoad ];
NSURL *url = [[ NSBundle mainBundle ] URLForResource : @"index" withExtension : @"html" ];
NSURLRequest *request = [ NSURLRequest requestWithURL :url];
[ self . webView loadRequest :request];
{
[ super viewDidLoad ];
NSURL *url = [[ NSBundle mainBundle ] URLForResource : @"index" withExtension : @"html" ];
NSURLRequest *request = [ NSURLRequest requestWithURL :url];
[ self . webView loadRequest :request];
}
//实现代理
- (
BOOL
)webView:(
nonnull
UIWebView
*)webView shouldStartLoadWithRequest:(
nonnull
NSURLRequest
*)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
];
//转换成方法,然后调用
SEL sel = NSSelectorFromString (str);
[ self performSelector :sel withObject : nil ];
}
//转换成方法,然后调用
SEL sel = NSSelectorFromString (str);
[ self performSelector :sel withObject : nil ];
}
return YES
}
//实现方法
-(void)
btnClick
{
{
NSLog
(
@“我点,我点"
);
}