- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BlackBerry Widget 开发中级篇
作者:王志刚
背景知识
在入门篇中,我们讨论了如何应用Blackberry 提供的Widget API 来进行开发,从如下链接中,
/developers/docs/widgetapi/
可以找到BlackBerry 能提供的所有Widget API 列表。然后,对于很多应用开发来说,widget
开发过程中,有些需求是系统API 所不能满足的,还有一种应用场景是用户需要把原有java
系统的代码和功能与widget 技术结合起来。为了满足这两种开发和应用的需求,widget 也
提供了扩展机制,能够满足用户的这种需求。本文就以一个扩充widget 的api 来实现手机在
javascript 中调用widget api 来实现手机震动功能,这个api 在标准widget api 中是没有实现
的。
开发工具下载
在进行Widget 开发之前,开发人员需要下载相应的开发工具,BlackBerry eclipse plug-in 。
本文使用的BlackBerry java Plug-in for Eclipse 版本为: v1.1.1 (下载地址如下):
/eng/developers/browserdev/eclipse.jsp
这个plug-in 的作用是给用户开发widget 扩展api 使用的。
开发具体步骤
步骤一
启动Eclipse, File New Project, 选择BlackBerry Project, 然后选择Next :
步骤二
在接下来的对话框,输入project 的名字MyWidgetExtension, 然后选择Next
步骤三
接下来,会出现project 的视图,图中可以看到系统已经添加了新的project ,在project 的src
目录下点击右键,然后添加一个package 名字为widgetpackge 。
步骤四
在新建好的 widgetpackage 上点击右键,添加一个新的 class,名为AlertSample ,让他继承
net.rim.device.api.script.Scriptable.
步骤五
添加好的class 的基本框架如下所示:
这个class 的作用是用来映射在widget 应用中的调用逻辑。当在javascript 的代码中通过”.”
操作符号调用扩展的api 时,getFiel()便会被调用。这个函数在AlertSample 中的实现如下:
当它被调用后,便会检查当前device 中vibrate 功能是不是被支持。
步骤六
然后,添加一个vibrate class 类,让他继承自net.rim.device.api.script.ScriptableFunction.
步骤七
添加好的class 的代码框架如下所示:
在自动生成的代码框架中加入如下代码,这段代码的作用是让设备震动一段时间。
步骤八
接下来,我们将把AlertSample 和vibrate 两个class 连接起来。
在AlertSample 中加入如下代码:
这些代码的作用是让AlertSample 能够调用vibrate 的实例,然后在AlertSample 的getField()
中加入如下函数实现代码
步骤九
最后,添加SampleExtension class 到项目中,创建class 的时候确保public 和final 修饰符被
选中,让sampleextensionclass 继承自net.rim.device.api.web.WidgetExtension.
步骤十
生成好的class 框架如下所示:
这里的几个主要方法的作用描述如下:
getFeatureList() – 这个方式是为了给widget 引擎提供我们新的widget扩成能提供的
feature list列表,如基础篇介绍,这里的feature就是widget开发过程中可以加入的access
的资源。
loadFeature() – 这个方法是当widget使用相应的widget engine提供的feature 时候,可以执
行的一些任务,这个一般就是widget 引擎加载进来我们extension api的入口点。
register() – 这个方法提供一个入口插入点,扩充的widget程序可以自动执行一些对当前
widget配置文件和浏览器的操作。
un
文档评论(0)