前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >最近弄HybridApp的一些心得

最近弄HybridApp的一些心得

作者头像
libo1106
发布2018-08-08 15:19:07
2930
发布2018-08-08 15:19:07
举报
文章被收录于专栏:Web 开发Web 开发

SDK的项目折腾了一个月,终于快到收获的时候,把这过程中的一些心得体会记录一下吧~

manifest并不是很好用

资源文件的更新,是在浏览器下次刷新的时候才会生效。

包含manifest的Html主文件默认会被缓存,类型是Master Explicit。

在测试的时候,我还发现,Master Explicit的更新机制,和其他资源文件并不完全相同,有时候修改manifest文件,浏览器不更新主Html文件。所以我平时都干脆把主Html文件,也放入到manifest的cache列表中,保证最多两次刷新浏览器,主Html文件可以得到更新。

建议:

如果想用好manifest机制来做离线缓存功能,最好手动把applicationCache对象中的缓存更新、刷新浏览器的功能实现,便于日后文件更新,相关信息可以看以前的文章

Hybrid App的离线功能,还可以配合localStorage、WebViewCache等搭配实现,可控性更佳。

Hybrid App测试不容易

因为我没做个原生App的开发,对Eclipse不熟练,App底层的那套测试方法我都不懂,就自己琢磨出一种测试的方法。

JS解耦测试:

把JS流程中的很多判断条件,统统写在js的公共变量里面,这样的话,js脱离native环境,可以通过浏览器来修改每个公共变量,来模拟App的各种事件。

代码语言:javascript
复制
//js code
(function() {
    var app = window.app = {};
    var app.isViewable = true;
 
    app.run = function() {
        if(app.isViewable === true) {
            alert('App is run on screen');
        } else {
            alert('App is run on background');
        }
    }
})();
 
//native code
handleViewableChange(state) {
    if(state === true ){
        app.isViewable = true;
    } else {
        app.isViewable = false;
    }
}

善用浏览器中的中端、单步、Profiles等测试功能,做到在与Native整合的之前,就测试好大部分的js代码。

JavaScript,一切皆对象

估计说出来也没多少人相信,在项目开始之前,我几乎没有写原生JS的经验。不过,人的潜能总是被逼出来的,一个月下来,我从最简单的写过程JS,到现在掌握了对象的继承等。

在JavaScript的世界中,一切皆对象(请允许我装13一下),但是,这里的对象,并不是我们平常所说的类的实例化后的对象。

从上面的截图可以看到,定义一个空对象obj,它的prototype是Object。JavaScript的继承都是通过对象的prototype来实现的。

Private Methods的实现:

在一个闭包空间里面,通过 function __privateFunc() {}来定义私有方法。公共方法使用上面的方法暴露给window。

对于JavaScript的感触,还有很多很多,下次再开篇文章来写写吧。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-09-032,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • manifest并不是很好用
  • Hybrid App测试不容易
  • JavaScript,一切皆对象
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档