您的位置:首页 > 移动开发

WebView的高级使用

2016-04-15 10:31 309 查看
WebView的高级使用

1.原生语言app——NativeApp(纯ios,纯安卓)的应用(OC,JAVA)

好处:原生系统支持强,流畅性足,系统的正统开发语言,用户体验好

不足:跨平台性弱,动态性弱,需要一定的上架的审核时间,每一安卓或ios需要相应的开发人员,成本相对较高

2.纯网页端应用——WebApp(譬如 从手机浏览器上进入 m.taobao.com,html5+css3+javascript)

好处:跨平台性强,动态性强,不需要上架,只需要有浏览器就可进行使用,需要的开发人员只有一种 “前端网页开发工程师”成本相对较低

不足:原生支持弱,流畅度不足,用户体验极其不好,高度依赖网络,经常因为网络的问题导致各种各样投诉

3.混合应用——HybirdApp(譬如微信+定位功能性强+动态性强)

好处:动态部分跨平台性强,更改动态部分不需要上架;原生部分系统支持好,整体功能流畅度一流

不足:人员需要开发的费用就更高,原生部分需要(ios,安卓)、垮平台部分需要(网页前端工程师)

某些应用,点击后跳转到webView,就是出于混合形式开发的应用。

玩法(1)第一种情况:一条链接成为整个控制器http://m.9skg.com/market/1_5_0/home.html?20150414172101

玩法(2)第二种情况:内容是html字符串,内部图片需要做js方法适配

例子:(lldb)
po _eventDetalModel.content

<h3 class="title title-1">一山书画社介绍:</h3><p> 一山书画社始建于2014年,是目前广州师资队伍平均学历最高,综合素质最强的书画培训创业团队,师资队伍由清华,广美,广工科班书法和国画研究生组建而成,一山书画社才刚刚建立,其中亦有很多不完善的地方,请亲爱的粑粑麻麻多给我们提意见,我们将真诚的为你们服务,大家多多支持。 </p><p>我们听不到,是因为润物无声。我们看不到,是因为潜移默化。 书法国画可以改变孩子们的性格和行为,如同在心中播下了一颗希望的种子,终将向着阳光破土而出!</p><p
class="pic"><img src="http://pic.108tian.com/pic/u_d19baad62877886d0d4305deabc8d499.jpg" alt=""></p>

// webView加载完成

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

    NSString *jsMethod =[NSString
stringWithFormat:

    @"var script = document.createElement('script');"

                         "script.type = 'text/javascript';"

                         "script.text = \"function ResizeImages(){ "

                         "var myimg,oldwidth;"

                         "var maxwidth=%f;"

                         "for(i=0;i <document.images.length;i++){"

                         "myimg = document.images[i];"

                         "if(myimg.width > maxwidth){"

                         "oldwidth = myimg.width;"

                         "myimg.width = maxwidth;"

                         "}"

                         "}"

                         "}\";"

                         "document.getElementsByTagName('head')[0].appendChild(script);",[UIScreen
mainScreen].bounds.size.width
- 20];

   
//拦截网页图片 
并修改图片大小

    [webView stringByEvaluatingJavaScriptFromString:jsMethod];

    //
调用webView上的javascript方法:ResizeImages()

    [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];

}

玩法(3)第三种情况:读取页面,但跳转逻辑及某些功能需要OC原生语言实现



玩法(4)第四种情况:真混编

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  WebView HybirdApp