×

深圳网站建设—APP开发—网站制作—小程序开发_博纳网络公司

0755 -
82538016
82560826
网站制作资讯

商城APP开发关于城市列表数据的增量更新机制与HTML5之间的交付方案

文章编辑:网站建设 文章来源:APP开发 浏览量:

    商城APP开发关于城市列表数据的增量更新机制与HTML5之间的交付方案。商城APP在开发过程中每当有城市数据更新时,version可以立即自增+1。问题是,如何判断有城市数据更新?一种解决方案是,在服务器建立一个Timer,每十分钟跑一次,检查10分钟前后的数据是否有改动,如果有,version就自增+1,并返回这些有改动的数据(新增、删除和修改)。这样就保证了10分钟内,从A改成B又改回A,这时候我们认为是没有改动的,版本号不需要自增+1。那么问题来了,对于1000笔城市数据,每次只改动其中的几笔,返回数据中包括那些没有改动过的数据是没有意义的,是否可以只返回这些改动的数据?分析1.0和2.0版本的城市列表数据,每笔数据都有cityId和其他一些字段,比如说城市名称、简拼、全拼等。APP开发公司程序开发工程师画了一个表,如图3-2所示,试图展示出1.0和2.0这两个版本的城市数据之间的异同。
    
图3-2 比较两个版本城市数据间的异同我来解释一下图3-2,以cityId作为唯一标识,只在1.0中出现的cityId是要删除的数据,只在2.0中出现的cityId是要增加的数据,二者的交集则是cityId相同的数据,这又分为两种情况,所有字段都相同的数据是不变的数据;cityId相同但某个字段不相同,则是修改的数据。增量更新的数据,就由增、删、改这3部分数据构成。于是,我们可以重新定义城市列表的JSON格式,在每笔增量数据中增加一个字段type,用来区别是增(c)、删(d)、改(u)中的哪种情况,如下所示:
{
"isMatch": false,
"version": 1,
"cities": [
{
"cityId": 1,
"cityName": "北京",
"pinyin": "beijing",
"jianpin": "bj",
"type": "d"
},
{ "cityId": 2,
"cityName": "上海",
"pinyin": "shanghai",
"jianpin": "sh",
"type": "c"
},
{ "cityId": 3,
"cityName": "平顶山",
"pinyin":
"pingdingshan",
"jianpin": "pds",
"type": "u"
}
]
}
客户端在收到上述格式JSON数据后,会根据type值来处理存放在本地的数据。因为不是全量更新,所以处理起来很快。这种增量更新城市数据的策略,会使得App的逻辑很简单,但是服务器的逻辑很复杂。这样做是划算的,我们要想尽办法确保App的轻量,把复杂的业务逻辑放在后端。
    
开发商城APP解决App与HTML5的交互
    App与HTML5的交互,是一个可以大做文章的话题。有的团队直接使用PhoneGap来实现交互的功能,而我则认为PhoneGap太重了。我们完全可以把这些交互操作在底层封装好,然后给开发人员使用。为了开发人员方便,我们要准备一台测试用的PC服务器,在上面搭建一个IIS,这样可以快速搭建自己的Demo,对于App开发人员而言,不需要等待HTML5团队就可以自行开发并测试了。他们只需知道一些基本的Html和JavaScript语法,而相应的培训非常简单。
开发商城APP解决App操作HTML5页面的方法
   APP开发公司为了演示方便,在assets中内置了一个HTML5页面。现实中,这个HTML5页面是放在远程服务器上的。首先要定好通信协议,也就是App要调用的HTML5页面中JavaScript的方法名称。例如,App要调用HTML5页面的changeColor(color)方法,改变HTML5页面的背景颜色。
1)HTML5
开发商城APP解决HTML5页面操作
    App页面的方法仍然是先定义通信协议,这次定义的是JavaScript要调用的Android中方法名称。例如,点击HTML5的文字,回调Java中的callAndroidMethod方法:1)HTML5
<aonclick="baobao.callAndroidMethod(100,100,'ccc',true)">CallAndroidMethod</a>2)Android新创建一个JSInterface1类,包括callAndroidMethod方法的实现:classJSInteface1{publicvoidcallAndroidMethod(inta,floatb,Stringc,booleand){if(d){StringstrMessage="-"+(a+1)+"-"+(b+1)+"-"+c+"-"+d;newAlertDialog.Builder(MainActivity.this).setTitle("title").setMessage(strMessage).show();}}}同时,需要注册baobao和JSInterface1的对应关系:wvAds.addJavascriptInterface(newJSInteface1(),"baobao");调试期间我发现对于小米3系统,要在方法前增加@JavascriptInterface,否则,就不能触发JavaScript方法。
    好了,深圳APP开发公司本文关于“商城APP开发关于城市列表数据的增量更新机制与HTML5之间的交付方案”就分享到这里。如果您需要联系深圳的APP开发公司为您定制开发高端商城APP,请咨询我们网站在线客服或者拨打我们网站APP开发技术客服联系电话,为您提供详细的电商APP商城开发解决方案。谢谢关注,博纳网络编辑整理。
 

当前文章链接:/construction/appkaifa/15183.html
如果您觉得案例还不错请帮忙分享:

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。

相关案例推荐