中国领先的IT技术网站
|
|

详解为什么Enyo可以调用webOS中的系统服务

在前文中我们介绍了在Enyo框架下安装webOS 3.0 SDK教程、在Enyo框架下编写webOS的“hello world!”、讲解webOS开发的Enyo基础和再谈webOS开发Enyo基础控件,本文我们将介绍为什么Enyo可以调用webOS中的系统服务。

作者:大熊来源:baiyuxiong|2011-07-18 10:57

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


Enyo1.0提供了五个service,分别是:

system: “palm://com.palm.systemservice/”

telephony: “palm://com.palm.telephony/”

database: “luna://com.palm.db/”

application: “palm://com.palm.applicationManager/”

accounts: “palm://com.palm.service.accounts/”

通过调用这些service,我们可以获取很多与webOS系统相关的信息。那为什么webOS中的JavaScript(Enyo是JS框架)可以直接操作系统信息呢?

一切的秘密就在enyo\1.0\framework\source\palm\services\bridge\WebosConnect.js中。

在这个文件的59行开始,有下面的代码:

可以看出,enyo在页面中插入了一个applet标签,这里加入了webOSconnect_1_3.jar这个jar包,并且将要调用包中的com.palm.webos.connect.DeviceConnection类。

而这个jar包,正是与系统数据直接交互的组件,jar包中没有打入源码,我们也就无法具体的实现了。

其中第二部分:“从JavaScript中访问Java Applet小程序中的方法和变量”详细解释了调用流程。

我把其中的示例代码贴出来:

“mytest.htm”

  1. function accessApplet() 
  2. { setTimeout("changeText('I like JavaScript!')",1000); 
  3. setTimeout("changeText('I like JavaScript and Java!')",2000); 
  4. setTimeout("changeText('I like Java!')",3000); 
  5. setTimeout("accessApplet()",4000); 
  6. function changeText(s) 
  7. window.document.testText.setText(s) 
  8. //此处调用JavaApplet小程序的setText()方法 
  9. //注意,小程序的名字必须为〈applet〉标志 name属性所标识 
  10. //通过调用accessApplet()装入小程序 

“Testtext.java”

  1. import java.applet.*; 
  2. …… 
  3. public class Testtext extends Applet 
  4. {   …… 
  5. public void setText(String s)   //setText()必须声明为“public” 
  6. text=s; 
  7. repaint(); 

【编辑推荐】

  1. 在Enyo框架下安装webOS 3.0 SDK教程
  2. 在Enyo框架下编写webOS的“hello world!”
  3. 讲解webOS开发的Enyo基础
  4. 再谈webOS开发Enyo基础控件
【责任编辑:立方 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络工程师考试考前冲刺预测卷及考点解析

本书依据最新版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点进行了提炼,并...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× CTO训练营(深圳站)