找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7665|回复: 36

[webOS开发] Mojo SDK学习笔记 (繁中已更新为Day5, 简中已更新为Day3)

[复制链接]
发表于 2009-7-24 11:36 | 显示全部楼层 |阅读模式
这个学习的笔记是个人学习 WebOS 的一些经验分享, 不是什么正式的教学, 不过有兴趣的朋友亦可以当教学使用, 亦不是一些专业的书籍, 不过大家都可以当作 Mojo SDK 学习的参考.
+ f5 f0 f5 K3 m- K0 w3 z7 T8 g9 F3 x+ J" ?; Z
我不定时会更新这篇笔记, 希望有兴趣开发WebOS 的朋友可以大家帮助, 虽然未有实机, 至少也公开了模拟器, 大家加油.$ f# K; d/ Y* n+ o

! U; h, q( U+ [3 y1 y8 y4 yWebOS_Notes_Big5_XXXXXXXX.pdf 为繁中版2 ~- U8 X" k' _
WebOS_Notes_GBK_XXXXXXXX.pdf 为简中版$ y+ |: f$ c. |. [, t
! e, }" w* L% J7 a
原码暂时未放出, 因为很多东西要整理, 不定时更新, 多多指教4 T( A8 D8 J. g7 A1 S

, M5 i; s: e3 z. S2 v$ Z>>这里下载<<4 I; }* B& v, d' S6 `; }

! n% J! ]$ |3 u+ H# a4 \# a出处当然是小弟的Blog:
, w- W% z) t6 \( f$ j9 W% k- T- Chttp://pre-dict.blogspot.com/
$ Q4 U* \) C4 e; t1 v. F- Q! g5 m( q6 o" p7 J# W" @$ |
***有朋友指出国内上不到我的Blog, 所以我上载文档到这边了***
( U; L& E' I# k. R有没有国内的朋友方便可以帮手校对和转成简体, 因为我的原版本是繁体的.$ p; q8 S# O2 I4 [  }/ q
如果没有的话, 可能简体要比繁体迟一点出来, 毕究要花点时间转换.9 @) Q2 q5 w9 Y' }& E" j- O

( P1 c# Y4 x( w  x[ 本帖最后由 tedwong 于 2009-8-2 00:17 编辑 ]

评分

参与人数 3威望 +35 收起 理由
2b6c3d729918489 + 20 谢谢分享
CyberVsQ + 10 谢谢分享
yydy + 5 谢谢~

查看全部评分

回复

使用道具 举报

发表于 2009-7-24 12:46 | 显示全部楼层
楼主真是个细心人,对我帮助很大,谢谢了~~" R7 H& M( F. X+ w, J+ B; G
欢迎多多分享心得。
. Q% {. N# q5 ?; B+ q  e我也准备尝试做些小玩意,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 13:04 | 显示全部楼层
烦请各网友核实 下载的网址/博客 是否不能在国内上, 如果是的话, 我尝试将文章
6 C  ^; u5 Q* y' o( d# K放到另一个网存空间(你们有没有免费的推介?)
回复 支持 反对

使用道具 举报

发表于 2009-7-24 13:24 | 显示全部楼层
blogspot.com 这个域名似乎被GFW屏蔽0 u( k" Y" c$ i9 A1 H. Q8 E
如果使用国内的博客服务可能问题较少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 13:58 | 显示全部楼层
原帖由 yydy 于 2009-7-24 13:24 发表
2 C7 n/ R1 R& u) p  cblogspot.com 这个域名似乎被GFW屏蔽/ L/ Z- U0 K% R2 U; Z+ {; s5 F
如果使用国内的博客服务可能问题较少
/ ]% L  E3 G+ z" t6 b
请建议一个给我吧, 我不太懂国内的情况
回复 支持 反对

使用道具 举报

发表于 2009-7-24 14:56 | 显示全部楼层
新浪好像有blog的
回复 支持 反对

使用道具 举报

发表于 2009-7-24 16:47 | 显示全部楼层
问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同2 c4 Q! a( f; e% {8 p( h5 x" c
我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的
1 u9 B/ i' q# |没有file->new mojo application
3 o, O/ I6 U% b6 C; q; k也没有右手键->new->mojo scene
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 17:20 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-24 16:47 发表
. ^$ R+ Y* J! W( {, e' o! i问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同2 T2 ~( c. j7 f3 f4 U, t! Q9 @& E
我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的
9 j1 v8 v+ c' b3 g6 D没有file->new mojo application
  E8 d4 t% ^% p5 v8 G8 S3 z/ Y也没有右 ...
" K# N" ~7 q) I/ y$ y
因为你这个不是Palm 官方的, 请参照这个官方的做法:
1 \: {* r5 ~9 ], D9 }http://developer.palm.com/index. ... article&id=1639
; h; u3 j- B5 n: I; e7 i! y* k. C2 k7 ]2 V2 S
第三天的学习完成, 不过很累... ... 未有时间打回文章' Y6 _+ O4 t. t! E6 q
近日没有工作才有这么多的时间去学这个SDK ><" 郁闷中.... ...( F% i* j4 M5 C) m/ R( [

. k0 g; d4 Q& x1 f& j[ 本帖最后由 tedwong 于 2009-7-24 17:23 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2009-7-24 19:07 | 显示全部楼层
谢谢楼主的分享!!!
回复 支持 反对

使用道具 举报

发表于 2009-7-25 08:09 | 显示全部楼层
编程人员,分享是一种境界。
回复 支持 反对

使用道具 举报

发表于 2009-7-25 14:37 | 显示全部楼层

回复 8楼 tedwong 的帖子

按照http://developer.palm.com/index. ... article&id=1639上的安装插件& p" x6 R# [1 N& O: O
不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml# ~# f1 V6 r' F" L2 Z
??
回复 支持 反对

使用道具 举报

发表于 2009-7-25 14:57 | 显示全部楼层
Hi,樓主的BLOG是我經常去的,好東西呀.
回复 支持 反对

使用道具 举报

发表于 2009-7-25 18:43 | 显示全部楼层
LZ,在你的blog上留了言,请教helloworld的问题
* w8 D# ]/ P& B* _5 u" K+ p
  [/ O4 p6 P1 D% D2 W想在helloworld这个例子里多加一个button,tap一下就减一个数
% l6 J$ @# r/ `$ T, i& l$ G于是在first-scene.html里添加:( {1 \3 X$ x1 s2 p  W
<div id="MyButton2" x-mojo-element="Button"></div>
& M$ S; T9 T2 f; ]8 }
: T# J4 H. d4 k' T+ O( ]! A在first-assistant.js的FirstAssistant.prototype.setup里添加:4 E4 ]$ s. ^$ }% [* y6 }6 a
this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model={buttonLabel: 'Decrement Down', buttonClass: 'negative'});. e: u; c7 G$ j" E1 e) b
Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));
" w5 p5 q* t; t" E, I2 Y8 L6 V2 x! c4 c+ @4 A' r" e7 N
并添加
  o4 h( W3 q- a% s7 i1 Z' ~FirstAssistant.prototype.MyButton2 = function(event){
( G* _% _. z# T    this.total--;# m% c& ^3 D' U' c0 b* _5 V- {
    this.controller.get('count').update(this.total);+ r. \/ Q+ G) w' K/ F7 ?9 d8 B
}
8 \  h* G4 O. b8 a/ o# m; P3 m8 S- g! K5 `  W$ v9 J2 v4 j! j
以上完成后,run,连第一个button都不显示了,不知道错在哪里,请指教~thanks
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 21:32 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-25 14:37 发表 6 C- K9 ~$ k6 ^- [& l( E
按照http://developer.palm.com/index. ... article&id=1639上的安装插件5 f: }9 q$ e5 b1 L
不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml: S; H! Z8 a3 V- J- V9 y' b
? ...

: s# }. u, J+ n- T你的Eclipse 是否最新版本呢?
  @6 v; S( [" ]% E% I# @+ _2 B: z) M5 f7 w/ _
9 O( `+ A1 c+ T( I' R# n
原帖由 rory 于 2009-7-25 14:57 发表
. _$ [+ {9 ^; |4 E- \* M5 M7 ]Hi,樓主的BLOG是我經常去的,好東西呀.
( T& I8 t/ _7 K! z5 O) a2 A7 l% m& }
好东西就多上便行了- z- z7 z( M  o

0 d6 I: ~  m* {1 m8 i1 E. _* `
/ A. B% w# n, L
原帖由 prenewbie 于 2009-7-25 18:43 发表 ' G- J* ?* R$ z/ J# |
LZ,在你的blog上留了言,请教helloworld的问题
/ o9 w5 q$ U2 k* h4 r7 P) K, q% f3 u2 `3 \4 r& Z1 W! |
想在helloworld这个例子里多加一个button,tap一下就减一个数5 T0 N, N+ l  [1 Y
于是在first-scene.html里添加:  v( ]- C! E3 V% K7 d# |2 o! f; Z

9 @  `# \! }0 `2 c6 d+ e. z* P- U7 ], @1 i1 m! p
在first-assistant.js的FirstAssistant.prototype.setup里添加 ...
# P; q5 K* s$ A4 Z9 D1 j
沒有任何问题尼, 你做错了什么?
  1. function FirstAssistant(){
    0 ]( D& G  v; ~) `' u
  2.     /* this is the creator function for your scene assistant object. It will be passed all the 3 h) o& q9 K0 g  t: z
  3.    
    ( d+ c* |3 R" s+ O
  4.      
    ' m6 j. t; s! H/ @8 V
  5.     ) W4 a& o" o- X2 L! ?% W5 k
  6.      additional parameters (after the scene name) that were passed to pushScene. The reference
    5 B  s! s/ b; v: m  f. _! \, p1 U! q: s" W4 z
  7.     * R5 G2 C3 z: e/ J  L7 y; d- V
  8.      6 A( d, Z& g* P/ O
  9.     2 A+ ], \2 J& H2 h6 ?" H8 m
  10.      to the scene controller (this.controller) has not be established yet, so any initialization
    / V/ m2 S: d0 ?7 N; U& Z
  11.    
    " U4 V4 ~6 K3 [3 q  H
  12.      5 s( r+ P2 e% d; }/ Z" X
  13.       }# F# a. `/ B" b8 U
  14.      that needs the scene controller should be done in the setup function below. */
    & T$ u5 g/ |# `7 b
  15.     ) O1 z% q8 U9 o" Q+ j' N
  16. }' y. `6 b5 Z/ }8 x
  17. : S, }7 \; R# p& W. l. M, a- Q
  18. FirstAssistant.prototype.setup = function(){
    7 q$ k! A4 J3 d: j# Z5 c" l- B) B

  19. 0 ]8 O7 V2 N4 A3 a
  20.     // set the initial total and display it! a6 Y8 x/ I( j
  21.     this.total = 0;
    * Z& H: V( N! ^% C
  22.     this.controller.get('count').update(this.total);
    . y( H3 w+ O8 H
  23.     9 |( g! ~5 B8 R+ D& j+ v
  24.     // a local object for button attributes
    - V1 p- ]# q- `0 j) M& F" u) @9 ^
  25.     this.buttonAttributes = {};
      a5 _, X8 b' q
  26.    
    * r7 ~% O$ u* c8 g6 l
  27.     // a local object for button model9 i) c5 k1 j: I8 P1 ?
  28.     this.buttonModel = {. P) x6 \0 ]: u( l; c& V; P5 [
  29.         buttonLabel: 'TAP HERE',+ m" A" I; D) y$ k% m" y; `/ e7 m4 B
  30.         buttonClass: '',' F5 s" d* w# d
  31.         disabled: false
    # [/ l3 B; D1 T- p9 _7 @
  32.     };  H/ u! `, b& z+ @
  33.    
    8 a9 F. A% p% ~3 P
  34.     // set up the button
    2 j8 l3 Z/ w" m0 d( i2 n
  35.     this.controller.setupWidget("MyButton", this.buttonAttributes, this.buttonModel);  \% i0 b" p- R9 a  l3 U% c0 }
  36.     // bind the button to its handler
    % _: T* H/ \% }& o
  37.     Mojo.Event.listen(this.controller.get('MyButton'), Mojo.Event.tap, this.handleButtonPress.bind(this));7 U) ^* K3 F2 f  N2 q% d6 d& ?
  38.    
    + w/ |: W+ M5 Q/ a' |
  39.     this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model = {9 R  f8 I3 @, G+ I* [+ W
  40.         buttonLabel: 'Decrement Down',
    / Z' i" f+ H" B8 S
  41.         buttonClass: 'negative'
    6 a: G+ T& X6 _- u
  42.     });
    6 J$ ]: c3 C* \% u% s: c5 T" N
  43.     Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));1 D, b- x3 o  `
  44. }
    + C' `+ s) y; n4 q% T: \

  45. 1 A- R9 s( o" A; U
  46. FirstAssistant.prototype.activate = function(event){
    0 G9 m) M. V8 {# y
  47.     /* put in event handlers here that should only be in effect when this scene is active. For- S$ A7 ]( h' ]. ?1 q/ t2 _

  48. 0 X0 b! V- q$ B6 u, E0 {
  49.      example, key handlers that are observing the document */
    " a) O% P; w, y0 ~" }. E& u
  50.    
    & ?# f2 k/ e6 E- P7 n
  51.     ; i& k, s& A, L0 Z3 f
  52. }9 X8 {3 [, S! z$ @! v

  53. 2 d* E9 ]/ e# W) Y9 @* {/ f1 N

  54. / C' D5 j4 i1 T' g: U
  55. FirstAssistant.prototype.deactivate = function(event){* Z$ o2 h9 x0 D+ o* H6 T' ?
  56.     /* remove any event handlers you added in activate and do any other cleanup that should happen before
    % h; n; ~# N# z5 D2 w4 u" T* r
  57.     / ^/ _5 ^$ M. s
  58.      
    , e2 o* P. [" x
  59.     # \: Q. W4 k7 [& P3 l
  60.      this scene is popped or another scene is pushed on top */* D" F4 o) t/ k  u
  61.    
    , b4 C% o5 k  w+ V
  62. }: Z. e4 {5 _, U6 d( {

  63. 2 {- o' p. l  t* ^) Y5 m9 B1 R
  64. FirstAssistant.prototype.cleanup = function(event){% F4 W# K+ }1 {: c, [3 J7 r
  65.     /* this function should do any cleanup needed before the scene is destroyed as ( @( i# L" J- o" C& a3 b, k
  66.     # A0 N8 o3 _" ?- U9 k
  67.      
    / i4 W- ?* N- U! ]& ]+ G3 W
  68.    
    3 f1 W9 j0 v8 m' I
  69.      a result of being popped off the scene stack */
    . G# x5 u# S! E: u
  70.    
    6 b* G+ k  B* ?$ R2 a( P7 v8 i- k, e
  71. }2 B9 q& t3 K; D  I) j

  72. % G3 F" @" y3 D9 F
  73. FirstAssistant.prototype.handleButtonPress = function(event){
    ; c9 e4 G5 e/ |! i6 W' i
  74.     // increment the total and update the display
    7 e/ `, N& u  j
  75.     this.total++;
    ! v  ^  s) }, J" {5 y
  76.     this.controller.get('count').update(this.total);
    * \8 ^4 V. t' V. w1 [6 C
  77. }9 R8 t$ F3 h* ^# r
  78. # J8 @* J9 J2 S- q4 ^+ j
  79. FirstAssistant.prototype.MyButton2 = function(event){3 ?' i0 g( W8 i
  80.     this.total--;
    7 v' Z8 b6 I& Y9 V
  81.     this.controller.get('count').update(this.total);$ W3 D9 w! f1 {7 h& f1 z
  82. }6 s6 L6 O. K2 X3 x7 R
复制代码
>>星期六, 日要出街玩, 未有时间更新.
' V* t7 ?$ z) q  y# R3 J' M$ t. X3 j! E  I0 B/ }
[ 本帖最后由 tedwong 于 2009-7-25 22:06 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

×
回复 支持 反对

使用道具 举报

发表于 2009-7-25 22:56 | 显示全部楼层
谢谢LZ回复
/ P4 W. t) r. i( ?; m- Z3 _! f+ @2 P! h& C  K9 b
刚发现是自己的目录结构搞错了,应该是\view\first\first-scene.html,不小心多了一层目录\view\first\first\first-scene.html
% o$ h* B% ~2 Q6 {# G% ~! Z$ A; i1 {5 O5 p( E& f7 K% b
[ 本帖最后由 prenewbie 于 2009-7-25 23:34 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 23:26 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 22:56 发表
2 o4 P+ N' G+ N+ b# M  Q谢谢LZ回复,又尝试了一下,还是不行,似乎我的first-assistant.js是没问题的,难道问题出在first-scene.html上?
) y" j6 R" a6 H5 r& C- \) Z; y
0 O" y3 u# H$ d7 Y/ b' D* G    Header
8 T+ V$ W) w( q- Q/ q6 A% m8 D$ L    0
/ {7 ]4 z2 S: P% T! X, k! X    ; ~( i0 }- U1 A+ i
    5 s& l, v2 x$ |7 ~3 K+ A

6 K' q1 F, i% F沒有问题尼, 是否你设定环境的问题尼?
回复 支持 反对

使用道具 举报

发表于 2009-7-25 23:37 | 显示全部楼层
原帖由 tedwong 于 2009-7-25 23:26 发表
( m# a5 K9 Q; M0 k$ {* {- q6 G' `8 b2 M
沒有问题尼, 是否你设定环境的问题尼?

# Z" W; t5 R9 }/ \8 l3 C# \
, j* N2 S0 P: z* j# Y5 ]2 t解决了,非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 01:09 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 23:37 发表
; @1 q6 _3 z& i3 V! d( T' D( ~2 {. m, R$ r- _7 s/ c+ A+ n9 A

' ~# L' d. ]5 P8 i6 `解决了,非常感谢

) G4 r; y! z" b; C2 g; q究竟是什么问题?
回复 支持 反对

使用道具 举报

发表于 2009-7-26 02:03 | 显示全部楼层
看15楼
回复 支持 反对

使用道具 举报

发表于 2009-7-26 10:38 | 显示全部楼层

回复 14楼 tedwong 的帖子

是昨天刚下载的 可是就不行 555555555
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 11:24 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-26 10:38 发表 # U& I6 {. b! ^
是昨天刚下载的 可是就不行 555555555
& M1 T# \4 R  a! I; |
重新再add 多次, 这是一个Eclipse 的Bugs:
4 Y! W1 h! r7 k" |. L( s. fhttp://furiouspurpose.blogspot.c ... -no-repository.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-27 14:58 | 显示全部楼层
更新了.... .....
回复 支持 反对

使用道具 举报

发表于 2009-7-27 19:01 | 显示全部楼层
这个很棒啊。回头我们这边找个合适的地方给楼主放东西。。让大家都方便些
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-27 20:43 | 显示全部楼层
原帖由 treo 于 2009-7-27 19:01 发表 : A) t3 u' I% ^8 D6 p
这个很棒啊。回头我们这边找个合适的地方给楼主放东西。。让大家都方便些

: q% c- k1 ]5 d& k0 A" A不用了, 我又不是时常更新
回复 支持 反对

使用道具 举报

发表于 2009-8-12 00:18 | 显示全部楼层
楼主,谢谢你的分享。以后还请多多更新,我们等着你的笔记呢。O(∩_∩)O哈哈~
回复 支持 反对

使用道具 举报

发表于 2009-8-14 09:20 | 显示全部楼层
谢谢lz,对我这个门外汉太有用了
回复 支持 反对

使用道具 举报

发表于 2009-8-20 13:25 | 显示全部楼层
下不了,不知道为什么
回复 支持 反对

使用道具 举报

发表于 2009-11-9 00:29 | 显示全部楼层
http://sites.google.com/site/predictblog/home/palm-pre-note/ a) h  H1 b. q$ ~; k
怎么打不开了?墙内墙外都打不开。
回复 支持 反对

使用道具 举报

发表于 2009-11-10 23:57 | 显示全部楼层
我传上来了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

×
回复 支持 反对

使用道具 举报

发表于 2009-11-11 13:02 | 显示全部楼层
下不了,有了楼上的可以了,谢谢大家
回复 支持 反对

使用道具 举报

发表于 2009-12-13 23:35 | 显示全部楼层
谢谢楼主的分享!!!
回复 支持 反对

使用道具 举报

发表于 2010-5-20 10:47 | 显示全部楼层
感谢楼主的分享精神,希望楼主继续发扬光大
回复 支持 反对

使用道具 举报

发表于 2011-9-18 19:52 | 显示全部楼层
今天成功在模拟器运行了ipk 多谢楼主
回复 支持 反对

使用道具 举报

发表于 2011-11-13 11:11 | 显示全部楼层
感谢分享啊~不知lz什么时候能再更新下呢?
/ D+ p5 }4 ?- x* V; P  u
回复 支持 反对

使用道具 举报

发表于 2011-12-31 21:10 | 显示全部楼层
非常感谢
回复 支持 反对

使用道具 举报

发表于 2012-9-20 16:55 | 显示全部楼层
好好学习 mark xia
回复 支持 反对

使用道具 举报

发表于 2012-11-21 21:23 | 显示全部楼层
支持啊......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2025-4-2 15:15 , Processed in 0.479446 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表