找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7573|回复: 36

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

[复制链接]
发表于 2009-7-24 11:36 | 显示全部楼层 |阅读模式
这个学习的笔记是个人学习 WebOS 的一些经验分享, 不是什么正式的教学, 不过有兴趣的朋友亦可以当教学使用, 亦不是一些专业的书籍, 不过大家都可以当作 Mojo SDK 学习的参考.
5 L7 H- w# p- u4 z: x; W4 ^4 @3 D
我不定时会更新这篇笔记, 希望有兴趣开发WebOS 的朋友可以大家帮助, 虽然未有实机, 至少也公开了模拟器, 大家加油.* S2 Z; b4 y. Y/ u, y

- g$ T& T0 N0 yWebOS_Notes_Big5_XXXXXXXX.pdf 为繁中版
' k- m, F+ Z9 FWebOS_Notes_GBK_XXXXXXXX.pdf 为简中版) S4 y( y4 g. ^$ c0 A

; k3 s5 ~' f. P1 Y) _4 U原码暂时未放出, 因为很多东西要整理, 不定时更新, 多多指教1 @6 h, |# ^! a8 G* i+ U
4 U) C" }- A) k1 E5 x# y
>>这里下载<<9 V% ~6 S3 P- ~. w4 Z" _

) g; M& M' \6 Y0 O/ q# p出处当然是小弟的Blog:
5 u( N* r4 R& r0 C! Mhttp://pre-dict.blogspot.com/
$ }9 {$ G. U+ M8 Q7 L& w# o; O6 E3 W) g, S' {
***有朋友指出国内上不到我的Blog, 所以我上载文档到这边了***; }. R) w, o# X$ J
有没有国内的朋友方便可以帮手校对和转成简体, 因为我的原版本是繁体的.& X3 X1 W1 u: u7 m$ M( Z' |/ J
如果没有的话, 可能简体要比繁体迟一点出来, 毕究要花点时间转换.
- e" P9 z2 A8 i( b; }1 N) ?8 X$ G0 Z+ i
[ 本帖最后由 tedwong 于 2009-8-2 00:17 编辑 ]

评分

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

查看全部评分

回复

使用道具 举报

发表于 2009-7-24 12:46 | 显示全部楼层
楼主真是个细心人,对我帮助很大,谢谢了~~5 P: ?9 }3 l- J2 h6 n( i4 u. E4 ^
欢迎多多分享心得。
6 }6 X* z3 A  m: M我也准备尝试做些小玩意,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 13:04 | 显示全部楼层
烦请各网友核实 下载的网址/博客 是否不能在国内上, 如果是的话, 我尝试将文章+ |7 h8 o+ `) ]6 v1 O& \8 J
放到另一个网存空间(你们有没有免费的推介?)
回复 支持 反对

使用道具 举报

发表于 2009-7-24 13:24 | 显示全部楼层
blogspot.com 这个域名似乎被GFW屏蔽3 `& Q9 ?' K! A" s2 K
如果使用国内的博客服务可能问题较少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 13:58 | 显示全部楼层
原帖由 yydy 于 2009-7-24 13:24 发表
( I9 G; o+ d5 r0 C2 s; Jblogspot.com 这个域名似乎被GFW屏蔽
1 @3 K; w5 [5 C! s9 u6 ^如果使用国内的博客服务可能问题较少
  @. |2 K6 m+ s, `; h
请建议一个给我吧, 我不太懂国内的情况
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-24 16:47 | 显示全部楼层
问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同+ m% _' E9 @5 A6 {
我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的. _3 f: ?& c( j4 A3 I9 D
没有file->new mojo application( U) g- A4 l; J  V! r
也没有右手键->new->mojo scene
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 17:20 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-24 16:47 发表 ! ^! f4 ^- o- U4 L1 g4 s9 r
问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同
; K% e: B8 ^5 m# U我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的! q/ i1 C; s) g# l
没有file->new mojo application
5 p/ e8 k+ Q& E* Q: q9 y. ]5 s9 m也没有右 ...
, X( _  A' n2 u8 u- O
因为你这个不是Palm 官方的, 请参照这个官方的做法:
3 \% I5 Q' k! c& _% `& @/ F1 bhttp://developer.palm.com/index. ... article&id=1639, x. k0 I, O. [
! O) u% g/ I7 H6 S
第三天的学习完成, 不过很累... ... 未有时间打回文章
& T3 K: P8 l/ V. ?# u! f" J( j近日没有工作才有这么多的时间去学这个SDK ><" 郁闷中.... ...
0 f7 G3 e- O3 U& w
! T5 C1 i! S2 \2 d* n( U[ 本帖最后由 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上的安装插件- _0 ]# d6 E& C# E/ A  k" @- E1 q; \
不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml
) z/ }8 C. W, l* B# b+ z??
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-25 18:43 | 显示全部楼层
LZ,在你的blog上留了言,请教helloworld的问题8 p! y, A3 }3 j8 m  c# X( g

* N1 |' b3 v. e2 k  H3 H8 r& [# I想在helloworld这个例子里多加一个button,tap一下就减一个数* @- `3 L- F" k# P2 g
于是在first-scene.html里添加:
8 T' |6 b& D6 n5 r0 t3 r<div id="MyButton2" x-mojo-element="Button"></div>( k! [3 U$ C+ _
: W$ G: X6 h0 q, f9 ?+ O
在first-assistant.js的FirstAssistant.prototype.setup里添加:
4 u- K4 Q, Q& m: q2 o5 j& X5 @. t' fthis.controller.setupWidget("MyButton2", this.buttonAttributes, this.model={buttonLabel: 'Decrement Down', buttonClass: 'negative'});
. W& [$ i3 I; j* [* B4 |Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));4 R) g4 _' V$ H% s8 M# x2 U# Q

6 b) @: k! |* h4 `, l8 T并添加& E  Y; \0 S9 i3 y  x2 \; x& l
FirstAssistant.prototype.MyButton2 = function(event){5 N; H% j; o7 }2 i* u) o  s* ?8 K
    this.total--;
$ J1 C! |$ J: V1 D2 N    this.controller.get('count').update(this.total);. n3 B. l+ q- U- ?% d7 d2 z* W9 P
}
4 m1 R1 Y3 n5 `# f2 t' ]1 r/ O( m/ y* |' _9 L
以上完成后,run,连第一个button都不显示了,不知道错在哪里,请指教~thanks
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 21:32 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-25 14:37 发表 9 r& y6 Q. ~4 q* r/ T
按照http://developer.palm.com/index. ... article&id=1639上的安装插件
, G5 R) F' o* \+ Q# G不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml
4 x" V) i" n! M5 O0 D+ w* \* \8 I) X# ~? ...

# w2 _- H4 |. b0 L; \" |- I你的Eclipse 是否最新版本呢?
! \# `  [, B+ h' T+ `( N' R' K3 E1 v4 w
) B1 P* |- F( a; Q; a: j
原帖由 rory 于 2009-7-25 14:57 发表 2 N" R0 C8 f2 r5 [( E# N. W5 I
Hi,樓主的BLOG是我經常去的,好東西呀.
% Z0 p, ]) P/ I; g
好东西就多上便行了
3 k. c4 f! w3 @# l- P" ]/ X" a) K* @7 N" Q. A, R/ O
0 [# v) j2 E  r9 S
原帖由 prenewbie 于 2009-7-25 18:43 发表 : a( w2 i9 n- v- l# A
LZ,在你的blog上留了言,请教helloworld的问题( B1 @7 j, v5 m, j; W
% Y0 S; @1 O. f3 \
想在helloworld这个例子里多加一个button,tap一下就减一个数
& i- ]: i  p+ @; c; b于是在first-scene.html里添加:9 i5 h4 E" t! C* a% b& S2 B, ~

4 J% a1 I+ T' l6 K$ }6 g- \1 O5 t2 [3 F, F; |7 y  U3 Q8 C% @; L, Y
在first-assistant.js的FirstAssistant.prototype.setup里添加 ...

5 g! P* |, d" s, L+ z沒有任何问题尼, 你做错了什么?
  1. function FirstAssistant(){, I0 `- v: y5 u! ^7 G) B5 k
  2.     /* this is the creator function for your scene assistant object. It will be passed all the
    % C9 u; c. ]8 ]; I5 N
  3.    
    / l  r* ]  H, F
  4.      ( f; J2 a( B9 O. W
  5.     & [5 Y% L( b* P+ w; H0 n" Z$ @
  6.      additional parameters (after the scene name) that were passed to pushScene. The reference
    $ O+ Q, D+ T/ X3 T: H
  7.    
    , M/ B6 B9 K6 {; V
  8.        X5 w0 K4 L8 O2 ~% E
  9.    
    $ u8 K, N. t  |# ~; n* c
  10.      to the scene controller (this.controller) has not be established yet, so any initialization
    8 m5 t% ~& K4 X4 a  A
  11.     , ~4 b8 Q" ?4 j$ B% E! n$ _# X
  12.      
    3 L. `7 M' K: N( G- a5 H
  13.     9 z2 a5 C% K' S  O  d* y
  14.      that needs the scene controller should be done in the setup function below. */# ]  `/ Y, p6 n( N. R2 B+ M) I
  15.    
    1 N7 d! A  \$ f6 z5 `# B9 ~7 ]
  16. }
    0 M8 {/ F' X# H0 A( i7 T
  17. : ?6 @) B# Y! Z: l3 e$ \& A! C
  18. FirstAssistant.prototype.setup = function(){" _2 O5 |- W1 y; D( |% I0 T
  19. . t# s: _  C. k# b! x, C
  20.     // set the initial total and display it8 p( C7 N5 p  t, N' B
  21.     this.total = 0;
    8 F! L5 g+ U/ I! j/ H6 Z2 v
  22.     this.controller.get('count').update(this.total);2 J" [  Q# n0 u& K" H) n4 z
  23.     7 M, t$ i0 u; z9 g4 ~
  24.     // a local object for button attributes6 Z* n2 K7 ?8 e" A+ h% Y$ L( I5 n
  25.     this.buttonAttributes = {};$ W6 K! s/ I1 \/ b! g
  26.    
    - p/ S8 k& m  ]  ?% _& ~
  27.     // a local object for button model6 `; f: E' k+ t
  28.     this.buttonModel = {- P7 X' s. ^8 ~" `5 x5 g+ n
  29.         buttonLabel: 'TAP HERE',* ~  u5 v6 V2 z3 u" H$ o/ a8 A4 g
  30.         buttonClass: '',( n9 Q0 p" S6 V% w1 ]; _! T. ]4 L3 b
  31.         disabled: false
    3 K$ [8 C* b3 ?  `
  32.     };1 k$ i% P1 c4 n$ j* Q% l
  33.    
    ; a& p' Q  B% i; ^& J
  34.     // set up the button
    " l. b" ]/ b5 ~# P* ~( y" b
  35.     this.controller.setupWidget("MyButton", this.buttonAttributes, this.buttonModel);
    ' S  s  L$ }; P+ V( S& q, e
  36.     // bind the button to its handler( E6 J0 n9 d+ i. ^! a1 D
  37.     Mojo.Event.listen(this.controller.get('MyButton'), Mojo.Event.tap, this.handleButtonPress.bind(this));
    # |! y" ]9 J6 J! w2 w7 [! b
  38.     ' u1 V" l3 t3 u' f8 I% _1 {
  39.     this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model = {
    - ~( g1 `' e7 t* X' h9 K: d. o5 H
  40.         buttonLabel: 'Decrement Down',
    + b( B6 H8 I: i
  41.         buttonClass: 'negative'
    5 \* G, x& y7 C% }
  42.     });
    , d* `8 o! r: j# ~4 N9 f# `
  43.     Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));" }, X) P5 B# {$ _
  44. }
    ( P/ p8 _5 R! I; Z* V  `1 U( Z
  45. * q2 x. ]3 w" x4 i$ m) P# |' N
  46. FirstAssistant.prototype.activate = function(event){/ V& O( P, y& s- `. o- H
  47.     /* put in event handlers here that should only be in effect when this scene is active. For
    ) w- Y" Y* R/ G* X9 S+ T6 \
  48. 3 L) Y1 ~2 U1 B/ T
  49.      example, key handlers that are observing the document */
    " M- F0 Y$ _+ I' Z. P+ Z, w; K2 d
  50.       P% J- U9 W. A
  51.    
    & {# p9 i5 g( A" o& ]6 u/ D- f
  52. }
    " ~0 O/ M* u. _: }% b- N
  53. 8 L. Q6 ]8 L4 \# F5 F, x4 u
  54. ( F7 P4 F! P" P6 ^
  55. FirstAssistant.prototype.deactivate = function(event){: D' @$ |5 P- A  |3 T
  56.     /* remove any event handlers you added in activate and do any other cleanup that should happen before
    6 Y4 s2 X8 {9 x" I3 D' b$ D1 H
  57.    
    8 P& e1 S2 M& n) `
  58.      
    , ~4 s+ _  Q5 ?5 q6 e5 w
  59.     % a! b: k% v0 |1 a& ~$ W
  60.      this scene is popped or another scene is pushed on top */
    ! ^' U8 v, m' Z+ G, `3 m6 E
  61.     2 E. a+ m) S  k, L% B; C; ^6 ?) y
  62. }0 a* X5 y/ D3 W6 X7 r3 Z, ^
  63. " T  L% g$ E$ f/ g1 L$ \  K
  64. FirstAssistant.prototype.cleanup = function(event){
    2 O/ w- C6 f( D& t/ B
  65.     /* this function should do any cleanup needed before the scene is destroyed as
    . c4 g* D. |. S; ^, H
  66.       F, W9 t% P8 t# T
  67.      6 h1 }& l- j3 r: K4 b; G
  68.     : V" O2 g( B7 j9 x' I8 T+ U. a4 p
  69.      a result of being popped off the scene stack */* _2 n* u0 @5 Z! M- {. v' s
  70.     " K6 K3 ~, z5 ]% g3 X) L0 G/ X2 W. I
  71. }2 Q/ p8 q: G- |+ K0 R3 i) |

  72. : T6 _' g: f4 K& y' ]- Y
  73. FirstAssistant.prototype.handleButtonPress = function(event){  C+ e" B7 F0 @& Y; K4 L& R/ A
  74.     // increment the total and update the display/ w% j( G) _$ S# r+ ]7 ^; |* M
  75.     this.total++;
    # l( x$ l8 X2 |8 O  h! X
  76.     this.controller.get('count').update(this.total);6 Q. w" O7 z8 Z4 B6 x6 G( K
  77. }
    # a. H5 `: M) V1 D# B
  78. 0 }* i( F# X5 A, I8 ~" V9 ~/ l  E5 i
  79. FirstAssistant.prototype.MyButton2 = function(event){0 g+ O, M% t' q
  80.     this.total--;% n' c) Z2 j  r& p
  81.     this.controller.get('count').update(this.total);
    7 y* V" d! `" y/ ?# H4 K
  82. }
    4 h" c* a2 _3 F+ w' @3 R
复制代码
>>星期六, 日要出街玩, 未有时间更新.
; D- j/ q  Y0 E& E6 Q0 G6 N+ `/ w2 H+ L: @: X. V: q  z
[ 本帖最后由 tedwong 于 2009-7-25 22:06 编辑 ]

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2009-7-25 22:56 | 显示全部楼层
谢谢LZ回复( D) A- Q" r6 |$ Y/ d/ z0 \' m' g
0 _7 F, z1 j+ a$ T; X! s: e+ c+ x
刚发现是自己的目录结构搞错了,应该是\view\first\first-scene.html,不小心多了一层目录\view\first\first\first-scene.html  R- j6 [2 N1 R" t6 J
( n  ]  U; W, a
[ 本帖最后由 prenewbie 于 2009-7-25 23:34 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 23:26 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 22:56 发表
; Z$ ^3 {4 k# `# e' E谢谢LZ回复,又尝试了一下,还是不行,似乎我的first-assistant.js是没问题的,难道问题出在first-scene.html上?
7 L8 ~+ S$ l/ }% T" `) [# s  g7 z/ h+ S# H' S# o1 G6 r
    Header3 X+ |8 C/ b3 M! ]) |
    0
, `# v. B' P5 C) C3 }    9 k( P+ |& ]5 O! k& O
    ; R- N+ G* Q9 s4 `3 b

$ H8 F0 |5 w, o. i" g沒有问题尼, 是否你设定环境的问题尼?
回复 支持 反对

使用道具 举报

发表于 2009-7-25 23:37 | 显示全部楼层
原帖由 tedwong 于 2009-7-25 23:26 发表 : y' K8 Y) R; [
2 }6 ]# y; t6 e" I& j. {% @8 F$ Q6 Y0 W
沒有问题尼, 是否你设定环境的问题尼?

, v5 K% D& X7 q: ]' C1 r' T* ~4 V: b* i1 ?# {: Z/ E& s
解决了,非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 01:09 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 23:37 发表 : r  V5 ?# s9 z4 a! C1 l2 h

6 a$ B/ ~* @& N+ A$ O. B
. D0 T  F: E/ j* J解决了,非常感谢
# E; X5 m0 `" S4 z1 d; e, M4 M$ s
究竟是什么问题?
回复 支持 反对

使用道具 举报

发表于 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 发表
  Z/ q) t: l, S8 b6 w/ T是昨天刚下载的 可是就不行 555555555
/ C+ H, P; O/ z+ Q8 P7 m4 K
重新再add 多次, 这是一个Eclipse 的Bugs:
1 I# |8 m, y8 Thttp://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 发表 # l& h$ v9 h! ?! M
这个很棒啊。回头我们这边找个合适的地方给楼主放东西。。让大家都方便些

4 m- y! t6 O! O# m不用了, 我又不是时常更新
回复 支持 反对

使用道具 举报

发表于 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-note8 ^$ n, U# F: _
怎么打不开了?墙内墙外都打不开。
回复 支持 反对

使用道具 举报

发表于 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什么时候能再更新下呢?' D8 K8 [5 O8 n! p! ^
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 22:24 , Processed in 0.450299 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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