找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7569|回复: 36

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

[复制链接]
发表于 2009-7-24 11:36 | 显示全部楼层 |阅读模式
这个学习的笔记是个人学习 WebOS 的一些经验分享, 不是什么正式的教学, 不过有兴趣的朋友亦可以当教学使用, 亦不是一些专业的书籍, 不过大家都可以当作 Mojo SDK 学习的参考. ( F. ^) m2 ~% y- X& ^( q9 S( c
4 {& a  B1 }% A, U$ N! `
我不定时会更新这篇笔记, 希望有兴趣开发WebOS 的朋友可以大家帮助, 虽然未有实机, 至少也公开了模拟器, 大家加油.7 ]; |& e6 h- Q1 O+ r

- N; q2 O% s# x$ ~9 x2 GWebOS_Notes_Big5_XXXXXXXX.pdf 为繁中版
+ g5 y& g7 i, E6 H: M5 rWebOS_Notes_GBK_XXXXXXXX.pdf 为简中版$ d6 Q6 M. t) d( F
  d% n" |" \4 }6 V" u
原码暂时未放出, 因为很多东西要整理, 不定时更新, 多多指教
9 @  [# y; B& U' ]/ ~* W% h  d1 ?( }
>>这里下载<<
! c0 U/ s$ ^9 I1 [: T, {, {: }; l  Z, ]/ [' M" ?& @9 i/ |7 C
出处当然是小弟的Blog:
& v' ^% v/ {4 Y9 y3 @" N, w1 Mhttp://pre-dict.blogspot.com/
3 u5 k1 q: b/ e2 F+ X9 h/ @. k) J7 r5 k; @9 ]6 M% T. D. d% n
***有朋友指出国内上不到我的Blog, 所以我上载文档到这边了***. B  p: l! L7 `3 B6 R! G
有没有国内的朋友方便可以帮手校对和转成简体, 因为我的原版本是繁体的.
2 I! z/ ~$ Q# d& S: [2 k如果没有的话, 可能简体要比繁体迟一点出来, 毕究要花点时间转换.# O0 ?' P' d3 E! I& }. W8 D
  _$ j. z' q% `
[ 本帖最后由 tedwong 于 2009-8-2 00:17 编辑 ]

评分

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

查看全部评分

回复

使用道具 举报

发表于 2009-7-24 12:46 | 显示全部楼层
楼主真是个细心人,对我帮助很大,谢谢了~~
6 v, [9 X1 K2 _欢迎多多分享心得。
( d6 I7 q* |: D6 m+ D; _我也准备尝试做些小玩意,呵呵
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-24 13:24 | 显示全部楼层
blogspot.com 这个域名似乎被GFW屏蔽
" r2 `: t8 m! }& E' \2 q9 @* G如果使用国内的博客服务可能问题较少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 13:58 | 显示全部楼层
原帖由 yydy 于 2009-7-24 13:24 发表
- I% g' }5 e- j! D# ]. [& E0 sblogspot.com 这个域名似乎被GFW屏蔽
+ \1 f: W3 q" u如果使用国内的博客服务可能问题较少
0 p6 N) O5 x5 r. w% H7 L" g5 E
请建议一个给我吧, 我不太懂国内的情况
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-24 16:47 | 显示全部楼层
问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同5 I/ a* i: V2 S
我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的- X) H' K. ]* X1 }5 f; z
没有file->new mojo application
0 t+ e# D& R' g. _2 N也没有右手键->new->mojo scene
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 17:20 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-24 16:47 发表 ! w$ @3 B/ j! F5 x
问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同8 d4 o0 x/ S$ |. `" J1 J9 P
我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的0 _; n  _- I# S
没有file->new mojo application8 T/ k& \2 r3 u; x8 x3 Q& {) V' d+ A3 _
也没有右 ...

! T. j  e3 w( o" v2 a0 S  w4 K' V因为你这个不是Palm 官方的, 请参照这个官方的做法:/ @- |1 L* ]2 N1 }
http://developer.palm.com/index. ... article&id=16394 _: k$ `- T: a8 l7 h
! \) z- p; B0 Z% |. l, v7 \( J  J% F4 I
第三天的学习完成, 不过很累... ... 未有时间打回文章
+ Y  o7 F+ ^$ o- _% B近日没有工作才有这么多的时间去学这个SDK ><" 郁闷中.... ...
, w; R. l/ ^& W1 t( M% q9 n) \4 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上的安装插件
" }5 P: e: o' W8 ]  y0 h不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml  S0 Q+ _' ]. l/ J# b- Q2 m/ R
??
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-25 18:43 | 显示全部楼层
LZ,在你的blog上留了言,请教helloworld的问题
6 k/ o9 x; {/ V1 v# r) u
% ]4 ^( ~2 C0 j* R/ T3 u4 R想在helloworld这个例子里多加一个button,tap一下就减一个数
9 B) R, B$ W. ^: x于是在first-scene.html里添加:
; r, \' u+ D/ d7 G: R5 J2 m* _<div id="MyButton2" x-mojo-element="Button"></div>7 j' ^, n9 l/ H; i( g
1 j+ a! S2 V  m# q0 O! m  L# m
在first-assistant.js的FirstAssistant.prototype.setup里添加:. C7 W' \. d- {
this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model={buttonLabel: 'Decrement Down', buttonClass: 'negative'});0 Z7 n9 K+ B/ s) q- M+ t
Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));3 k  h& U( @- Y9 p' q

: v$ C7 E+ {! }  Q  {并添加5 R9 `+ G8 W' S5 T' z: W
FirstAssistant.prototype.MyButton2 = function(event){
  L0 A, [" J; L* G    this.total--;( H1 b6 t3 V6 l( w9 O( F& k( g
    this.controller.get('count').update(this.total);( T- D" C8 u$ Y8 C3 t" c
}
( R: P* I' s. j/ T9 `0 E) [+ ^: T4 e9 [# T
以上完成后,run,连第一个button都不显示了,不知道错在哪里,请指教~thanks
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 21:32 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-25 14:37 发表 8 M5 X4 L# n9 r; F4 B* D7 m
按照http://developer.palm.com/index. ... article&id=1639上的安装插件
6 X: M' G4 |( |6 t/ D  V不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml4 e3 ?2 X0 Y" o4 s" b* V
? ...

  r$ n7 }4 X4 E你的Eclipse 是否最新版本呢?# W; d* W, |2 L* K# x4 ~

+ _: }4 p* E9 {. Y1 ^  M$ h( i
$ z% N" k% g* U8 m& E& Y5 r+ j0 p
原帖由 rory 于 2009-7-25 14:57 发表
( m7 s1 g. b3 r8 H/ g# r+ OHi,樓主的BLOG是我經常去的,好東西呀.
* Q. y! [) ]$ v/ v  h
好东西就多上便行了
2 x6 r0 g  P6 }5 j1 Q
, Y' d. b5 @% b8 e6 \6 |# K% s8 R7 u( V9 b6 S& O- O
原帖由 prenewbie 于 2009-7-25 18:43 发表   S4 J/ h- N6 q  B5 I
LZ,在你的blog上留了言,请教helloworld的问题5 @2 S8 [0 ?* N) o% h
8 @& b: D' v& J9 A7 n# _& s
想在helloworld这个例子里多加一个button,tap一下就减一个数$ G% o$ x4 q0 q3 O+ `7 V
于是在first-scene.html里添加:
6 V0 j; `& w1 Y3 w) @5 H1 K: ^& M9 w; h
( x1 B; M" R! V4 ?7 v4 s; l% l
在first-assistant.js的FirstAssistant.prototype.setup里添加 ...

* u& ^* C" p% _, Y6 E/ ^沒有任何问题尼, 你做错了什么?
  1. function FirstAssistant(){" x+ b' h% r% m' F
  2.     /* this is the creator function for your scene assistant object. It will be passed all the
    ) G9 p- u' q) b8 C8 t: Q
  3.     ; a& I8 g: D3 R5 [0 t! P
  4.      / r: S4 k& J. N  E; [! g) [, V$ U
  5.    
    $ D+ c+ H. |& \! }4 u6 R
  6.      additional parameters (after the scene name) that were passed to pushScene. The reference
    $ H6 p. d! J  j7 I+ \: w# o6 Z
  7.     $ K3 `; W: P( P, \5 z
  8.      
    / p$ P) o& h5 l( v! q9 A( I
  9.     & C9 A4 e, c! c7 l1 E8 \$ J$ w
  10.      to the scene controller (this.controller) has not be established yet, so any initialization
    - J9 o& j* B! R3 {+ e4 Y
  11.     $ s3 b6 F6 V( u! {
  12.      
    ! O; f* T6 x0 c9 d' R9 t
  13.    
    . h4 J8 w$ A7 p; g
  14.      that needs the scene controller should be done in the setup function below. */
    9 d1 P: U) o3 D0 a5 i
  15.     , H" z9 ^+ |- x( b! [& c$ T3 ?/ T
  16. }
    8 L! Z' `* f' J1 Q( t0 p; b& H

  17. 1 _$ J( q, {- Q  r- s- L8 H+ m6 g# a
  18. FirstAssistant.prototype.setup = function(){. K2 M" r( V% \3 W! _  P0 t% p

  19. 9 g% c9 r4 w! N" |0 S# o
  20.     // set the initial total and display it3 p0 m- D7 M) b* f# F
  21.     this.total = 0;
    - m! K' D. @; Z, U! f" l
  22.     this.controller.get('count').update(this.total);9 X7 [8 Q4 N% \8 f: q
  23.    
    $ f& J9 I  P* A! |/ j5 g3 Z+ O0 j
  24.     // a local object for button attributes
    # m6 u& q& z, |: G% v) E
  25.     this.buttonAttributes = {};! |( j# X9 O, }' X' |
  26.     * B6 Z4 r3 j) B4 `7 [& d: Q
  27.     // a local object for button model
    ; I1 ]9 G" Z- k9 K& p3 F  T4 Q
  28.     this.buttonModel = {% A  d& R* W4 W, \% E& y2 D
  29.         buttonLabel: 'TAP HERE',4 b' `# E" }0 J0 M- ?
  30.         buttonClass: '',
    - D1 Q8 L. u& J  E
  31.         disabled: false  b% j! ^. l) m$ h/ P3 c
  32.     };' K. f' K! F; V7 G/ t" j4 A& {9 n
  33.     * ]- Q! p1 _7 m% v& m) v1 ]
  34.     // set up the button: h3 {; R0 S. F  I' L5 c
  35.     this.controller.setupWidget("MyButton", this.buttonAttributes, this.buttonModel);3 t: Q& |5 k- u" o
  36.     // bind the button to its handler9 e- _! B( F/ Z
  37.     Mojo.Event.listen(this.controller.get('MyButton'), Mojo.Event.tap, this.handleButtonPress.bind(this));& Q1 ?& M0 D$ f$ F( |* M
  38.     2 ~9 i8 j; n$ |( F
  39.     this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model = {
    2 Q" |! `; s5 k
  40.         buttonLabel: 'Decrement Down',4 E! Q. Y: O7 C* A' P' B
  41.         buttonClass: 'negative'1 R3 C% G. U9 @
  42.     });
    % d# a) N# T/ p: Y* k/ ]6 S: q2 ^
  43.     Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));
    ( `+ H4 X. q. F+ |1 I9 q
  44. }
    9 E# A- v7 L  Q! r( _' L

  45. ! |- M: S1 G  B9 ]$ \) A; _
  46. FirstAssistant.prototype.activate = function(event){$ ~7 Y! |+ q: m1 z5 O6 a  U! c$ a
  47.     /* put in event handlers here that should only be in effect when this scene is active. For. w% x: r  {, ?: i' P  u2 Q

  48.   Z2 y; K/ h, M) k4 b
  49.      example, key handlers that are observing the document */6 I  @& b- v, ]: l- ^8 Y% k
  50.    
    6 z$ ?" C% f+ ^" s4 Z" l
  51.     # r" t  u- s, b4 i
  52. }: m, w% d- o- e

  53. 6 h) D, {3 v  E; u
  54. " k, _: k% [! |! Q4 }
  55. FirstAssistant.prototype.deactivate = function(event){) L$ ?0 N( D6 v+ y' d# w6 Y6 y
  56.     /* remove any event handlers you added in activate and do any other cleanup that should happen before
    0 z( S1 t: v' K3 f8 e: N7 s: q
  57.     ' b" R7 M1 x0 w; a- k: h
  58.      9 Z9 U; ]0 s% {8 ]1 _% u/ P- E) e
  59.    
    / [7 O3 f- w2 _/ o0 h9 S. L
  60.      this scene is popped or another scene is pushed on top */
    " H, A) _% k% a, V
  61.    
    8 I; m; p- e3 g2 @) K, v3 ]5 k
  62. }: \( B. c* J1 ^$ O! {

  63. 9 w: D5 o2 i8 V
  64. FirstAssistant.prototype.cleanup = function(event){
    1 v. F! [* w1 p  A
  65.     /* this function should do any cleanup needed before the scene is destroyed as 0 o7 y( F$ B+ v# f  M( R8 ?7 R" x
  66.     $ w8 s# ?, |3 m* G0 W
  67.      
    - `% _* s- X$ {" B" w9 X
  68.     6 d8 T1 q! h. E6 C
  69.      a result of being popped off the scene stack *// ]5 }/ E* v7 |7 G
  70.    
    * z+ R3 S( L  }: O" ^& f  f
  71. }( \, T$ P# F7 o* G

  72. ! i8 x& ?' B6 j1 G
  73. FirstAssistant.prototype.handleButtonPress = function(event){) Q) U- r: y( V% v* K1 G1 C; s8 r
  74.     // increment the total and update the display
    8 H; o% f9 z. k$ L& Z
  75.     this.total++;( B/ A# Y. B3 G- P; e
  76.     this.controller.get('count').update(this.total);! l) D( T) q" U
  77. }
    ( A+ j# H- r* R# {' P, E* J
  78. & E& y. H7 Z# q7 c$ t
  79. FirstAssistant.prototype.MyButton2 = function(event){
    # l+ U  |6 H) q' u" F  x
  80.     this.total--;$ x$ b& `! ]/ d. r/ y
  81.     this.controller.get('count').update(this.total);( b) C  e5 ~  ]0 G, V
  82. }
    * i2 @' S1 P3 w5 D3 O
复制代码
>>星期六, 日要出街玩, 未有时间更新.
0 u8 |3 {+ X6 J, y. P- v; }, T7 q2 k3 {! u/ l( t% }6 c* F
[ 本帖最后由 tedwong 于 2009-7-25 22:06 编辑 ]

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2009-7-25 22:56 | 显示全部楼层
谢谢LZ回复
2 P. B+ }9 `% d5 T5 m
5 w" j( a+ H! F1 N刚发现是自己的目录结构搞错了,应该是\view\first\first-scene.html,不小心多了一层目录\view\first\first\first-scene.html9 t- b; G4 b! S0 s
7 K2 ~' I0 O0 I! ~
[ 本帖最后由 prenewbie 于 2009-7-25 23:34 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 23:26 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 22:56 发表
! o% J. j+ Q4 r' V0 z+ Y2 o0 U谢谢LZ回复,又尝试了一下,还是不行,似乎我的first-assistant.js是没问题的,难道问题出在first-scene.html上?& b6 z" X" K  Q* X5 W- p7 S
$ B/ K6 x' R# `; z, v. M% [
    Header3 b( \# C$ F' C' ]# ]. P
    06 w0 T2 w; y7 s, n' }2 Z
   
5 S8 c* ^9 P+ N" i1 Y- c2 l+ k    ; F6 T, ]; t' O2 Z" [  D& s0 i
7 h2 E" G! w4 z
沒有问题尼, 是否你设定环境的问题尼?
回复 支持 反对

使用道具 举报

发表于 2009-7-25 23:37 | 显示全部楼层
原帖由 tedwong 于 2009-7-25 23:26 发表
$ B9 p$ q* J7 y* N. m0 _) c3 K
* w* D, m9 L) E# q! @* g沒有问题尼, 是否你设定环境的问题尼?

& q4 a7 t" {; V4 k6 |: Y' F; m! j0 P2 L+ l9 \! ?2 ~
解决了,非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 01:09 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 23:37 发表 + v1 V  a) Q. J+ {

: W: I! |. {7 ~! a& g  {- j! ?6 }) N" F6 `5 m
解决了,非常感谢
! t8 A5 U: Q& O. a" V
究竟是什么问题?
回复 支持 反对

使用道具 举报

发表于 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 发表
5 A  @% ]- c9 \; O4 n8 h是昨天刚下载的 可是就不行 555555555
/ u! u9 e- b8 v& l: J. X
重新再add 多次, 这是一个Eclipse 的Bugs:% s5 _: b  P; }, W/ |, ^
http://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 发表 3 O6 i& [% s' I+ c& h0 W
这个很棒啊。回头我们这边找个合适的地方给楼主放东西。。让大家都方便些

, G! A- c0 z. V; j不用了, 我又不是时常更新
回复 支持 反对

使用道具 举报

发表于 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, Y& X# @) D) {; {7 m
怎么打不开了?墙内墙外都打不开。
回复 支持 反对

使用道具 举报

发表于 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什么时候能再更新下呢?
9 U9 o+ F- c  V/ Q5 V4 S) m$ }# V
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-20 12:29 , Processed in 0.389538 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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