UIWebView的使用与总结

作者: Bison | 来源:发表于2015-09-22 11:13 被阅读1446次
    hh.jpeg

    先前在项目中使用了UIWebView

    在项目中一些比较复杂的UI布局、需后台灵活控制的界面、原网页,可以考虑UIWebView

    在用它之前跟大家说下它的优缺点

    优点:

    • 可跨平台

      开发一次可以部署iOS、Android等平台。
    • 发布更新快

      在服务器端发布,能够实时更新终端展示,便于快速升级以及紧急修复bug
    • 排版布局能力强

      强大的HTML+CSS让人膜拜

      缺点:
    • 性能

      相对于原生的app来说,使用UIWebViewapp相对来说性能会低一点,
      用户的体验度也会大打折扣
    • 数据通讯复杂UIWebViewApp之间进行数据通讯只能通过javascript
      UIWebViewDelegate来进行,客户端想传参数给UIWebView修改网页或

      者从网页中获取数据都比较复杂。具体的操作如下

    更多经验请点击

    UIWebView的常规使用方法:
    //加载网页或者本地文件
    - (void)loadRequest:(NSURLRequest *)request;//直接加载html内容,如果html中的图片等资源在本地目录,注意将baseURL指向该目录

    - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;//功能与上面类似

    - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

    实现UIWebViewDelegate主要使用到的方法
    -(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*) reuqest navigationType:(UIWebViewNavigationType)navigationType;//当网页视图被指示载入内容而得到通知。应当返回YES,这样会进行加载。通过导航类型参数可以得到请求发起的原因,可以是以下任意值:
    UIWebViewNavigationTypeLinkClicked //判断是否是点击事件

    UIWebViewNavigationTypeFormSubmitted

    UIWebViewNavigationTypeBackForward

    UIWebViewNavigationTypeReload

    UIWebViewNavigationTypeFormResubmitted

    UIWebViewNavigationTypeOther 通过 NSURL *url = [request URL];

    NSString *curUrl= [url absoluteString];
    可得到点击事件的URL
    -(void)webViewDidStartLoad:(UIWebView*)webView ;//当网页视图已经开始加载一个请求后,得到通知。
    -(void)webViewDidFinishLoad:(UIWebView*)webView ;//当网页视图结束加载一个请求之后,得到通知。
    -(void)webView:(UIWebView*)webView DidFailLoadWithError:(NSError*)error;//当在请求加载中发生错误时,得到通知。会提供一个NSSError对象,以标识所发生错误类型。 设置背景透明:webView.backgroundColor= [UIColor clearColor];webView.opaque=NO;
    自动适配屏幕:
    webView.scalespageToFit = YES;

    自动检测网页上的电话号码,点击可拨号

    webView.detectsPhoneNumbers = YES;

    与js交互

    我们在webViewDidFinishLoad方法中就可以通过javascript操作界面元素了。
    1、获取当前页面的url。
    - (void)webViewDidFinishLoad:(UIWebView *)webView {NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];}
    2、获取页面title:
    - (void)webViewDidFinishLoad:(UIWebView *)webView {NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"];}
    

    推荐一款学习iOS开发的app_____|______| | 传送门

    技术交流群:534926022(免费) 511040024(0.8/人付费)
    原文在:http://www.allluckly.cn/
    版权归©Bison所有 如需转载请保留原文超链接地址!否则后果自负!

    相关文章

      网友评论

      本文标题:UIWebView的使用与总结

      本文链接:https://www.haomeiwen.com/subject/dlsicttx.html