webOS输入法实现设想

至今还没见过pre真机呢,唉。前些天和streatsmart聊起,讲到pre上的中文输入法实现。我想当然地说,和android, iphone早期一样,没有输入法框架,也没sdk,估计是不怎么可能作系统级输入法的啦,哪有都像palm os这么多方式好hack的。他说,palmer@ifan提到,用js应该可以实现。虽然没有什么详细内容,我只是觉得或许也可以看下,载了webos的rom看了下源码。发现几个textfield控件的实现都是有源代码的。 read more

关于Palm Pre – webOS的开发

这个题目好像起得大了点儿。北京又下雨,闲来无事,找了treo8里提供的webos开发的英文原版书出来看了下。o’reilly出品,质量保证,在palm开发者网站上有免费提供第一章。这书据说是网友自己买来的,我不确定是不是对外都能看到并下载。

书里讲的还是比较入门的,概括来说,只讲了三方面内容 ui控件(3章),数据存储(1章),还有系统服务的调用(2章)。如预想的一样,完完全全的html开发,加上mojo。不能说我完全没做过html的开发,连js/dom我都还算是知道并写过些代码的。不过毕竟不是专长,也不是喜欢的方向,所以像mojo这种框架,我也是知道webos后才知道的。个人是不太喜欢写html的,我也说不上来原因,总觉得为了页面布局的,总要反反复复调,不如做其它程序的gui时来得干脆。可行方式又太多,总让你想不停去优化它。不过webos毕竟是手机用的,总还是有不同的,看了书里一点点示例代码,相比起一些网页程序,总觉得还是清爽许多。毕竟一屏撑死也就放得下十来行按钮而已,又没有网页左左右右,上上下下的拖拉,布局该是容易多的。控件都是用<div />标签来定义的,如<div id=”my-toggle” x-mojo-element=”togglebutton”></div>这种方式指定控件类型。突然想到,这上面自己的扩展不少,不知道开发环境里的代码补全是否好用。现在的新平台看起来可真雷同。控件这些和android好像大同小异,连list设置adapter这些都让我觉得大方向上差不多。对list里面的某行,设置模板,就好像android上对listadapter.getview时,一般从一个资源里直接创建,就和模板一样嘛。

数据存储可以用cookie,depot和html 5 storage方式,cookie和depot都是存简单数据的,虽然上面说depot可以存5m的数据。比较有意思的是,depot存取数据时是异步的,这个好像我还没见过。文档里面对html 5 storage只提了一个opendatabase api,甚至连怎么建表都没提。不过给了个链接(http://dev.w3.org/html5/webstorage/#databases),这东西我也之后再琢磨吧。看起来也是sqlite之类的实现。不知道性能怎么样。数据访问这章还提及了ajax来和web server交换数据。

系统服务这些比如提了怎么调用phone程序打电话,怎么查看一个联系人,怎么出个联系人选择对话框。本来我也觉得和android上的intent方式看起来挺像。不过有意思的是,在调用时,可以设置onsuccess和onfailure的回调函数。至少从结构上来看,方式是不同的。android上用onactivityresult来处理调用后的结果。这两章还提及了像系统alarm service怎么用一类的。还有”cloud service”,很有噱头的名字。里面有个palm service叫palm://com.palm.pubsubservice,看起来和apple家那个notification center好像是类似的主意吧。我不知道大家是同时都想到了呢,还是抄的呢?

很可惜的是,没有其它更深入的一些资源,比如没提及过native code怎么写。像classic模拟器那种自绘的view怎么做,难道用html代码生绘出来的?我可不信。。更加没有提及有没有输入法框架一类的。

期待palm pre sdk出来,到时再来给大家提供新情报。