在我们IOS开发中,有时我们需要用webView来打开一些html文件,并且我需要需要定位到某一行(效果如下图),左图是想要实现的效果。那么如何做到呢?
步骤:
1.先来分析一下html5中如何写javaScript代码,如下图
3.再来看一个json文件
[{"title":"如何领奖?","html":"help.html","id":"howtoprize"},{"title":"如何充值?","html":"help.html","id":"howtorecharge"},{"title":"如何提现?","html":"help.html","id":"howtowithdraw"},{"title":"如何购彩?","html":"help.html","id":"howtobuy"},{"title":"如何连续多期买同一注号码?","html":"help.html","id":"whatisfollowandtimes"},{"title":"如何跟别人合资买彩票?","html":"help.html","id":"howtogroupbuy"},{"title":"如何快速支付?","html":"help.html","id":"howtoquickpay"},}4.很明显我们可以定义一个模型来获取json文件,这里面模型为htmlItem
/**title*/@property(nonatomic,strong)NSString*title;/**html*/@property(nonatomic,strong)NSString*html;/**ID*/@property(nonatomic,strong)NSString*ID;5.创建webView发送请求
UIWebView*webView=(UIWebView*)self.view;//如果文件路径中有中文,转换成URL会失败,NSURL*url=[[NSBundlemainBundle]URLForResource:_htmlItem.htmlwithExtension:nil];//创建请求NSURLRequest*request=[NSURLRequestrequestWithURL:url];[webViewloadRequest:request];webView.delegate=self;
-上面的代码如何请求url时如果路径有中文需要通过编码才可以,通常用UTF8
NSString*filePath=[[NSBundlemainBundle]pathForResource:@"help.html"ofType:nil];////如果路径中有中文,必须转换下百分号,通常用UTF8转中文filePath=[filePathstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//NSURL*url=[NSURLURLWithString:filePath];
6.也是最关键的一步,监听webView的加载完成的代理方法,通过stringByEvaluatingJavaScriptFromString:方法来执行javaScript