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

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

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(); 

 

责任编辑:佚名 来源: baiyuxiong
相关推荐

2011-07-04 10:55:10

EnyowebOS 3.0 S

2011-07-07 10:40:18

Enyokindscomponents

2011-07-01 11:02:30

EnyowebOShello world

2010-11-23 08:39:41

EnyowebOS 2.0WebOS

2011-07-01 10:52:59

EnyowebOS 3.0 S

2012-05-26 23:32:54

webOS

2018-07-27 09:41:45

Linux系统服务器

2011-07-08 20:54:12

iPhone WCF

2023-01-11 16:22:07

2020-05-26 09:09:43

Linux 系统调用操作系统

2012-05-27 08:05:00

惠普webOS集体离职

2023-11-29 09:19:00

WebhookURL

2018-05-14 11:07:48

服务器Linux系统

2009-10-24 10:29:56

2021-04-16 17:02:21

数组C++语言

2012-02-08 09:49:02

惠普webOS开源

2019-11-25 10:38:58

NginxWeb服务器

2019-07-20 10:37:12

Web服务器Nginx

2020-06-10 14:10:53

服务开发 架构

2022-12-06 08:26:16

SpringAOPthis调用方法
点赞
收藏

51CTO技术栈公众号