找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7569|回复: 36

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

[复制链接]
发表于 2009-7-24 11:36 | 显示全部楼层 |阅读模式
这个学习的笔记是个人学习 WebOS 的一些经验分享, 不是什么正式的教学, 不过有兴趣的朋友亦可以当教学使用, 亦不是一些专业的书籍, 不过大家都可以当作 Mojo SDK 学习的参考. * b7 y6 e2 O2 w2 }% J

2 Y: P/ O  h) \- Q" b我不定时会更新这篇笔记, 希望有兴趣开发WebOS 的朋友可以大家帮助, 虽然未有实机, 至少也公开了模拟器, 大家加油.
, Z$ _5 K; {: I. M2 o; D
5 @  S/ ^9 z! D  n+ ?( |* Y/ lWebOS_Notes_Big5_XXXXXXXX.pdf 为繁中版( V! _0 B4 e. g/ B3 S
WebOS_Notes_GBK_XXXXXXXX.pdf 为简中版
7 P1 q: f& s7 M) J1 p
2 W1 @/ n: x/ {& J' m* V原码暂时未放出, 因为很多东西要整理, 不定时更新, 多多指教
) G8 \: q. n8 ]" \6 V$ b/ w- U* k+ J4 W& P
>>这里下载<</ j0 m$ y* J( s- @4 U

7 S) m5 ~  ^$ }$ L( Y! j4 i出处当然是小弟的Blog:( k* n; m0 m3 T* d- z
http://pre-dict.blogspot.com/* p/ ^7 L9 c& ~6 g- h9 F# s" W0 K
. F5 M; N, h+ X& y9 J( l
***有朋友指出国内上不到我的Blog, 所以我上载文档到这边了***2 v$ I, H5 s: e/ z" I3 n
有没有国内的朋友方便可以帮手校对和转成简体, 因为我的原版本是繁体的.: i' D* Z! p  r, U& q' F! [
如果没有的话, 可能简体要比繁体迟一点出来, 毕究要花点时间转换.8 T' J* X! _3 w6 c
& C7 C* t( z, }7 v9 q) t) O
[ 本帖最后由 tedwong 于 2009-8-2 00:17 编辑 ]

评分

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

查看全部评分

回复

使用道具 举报

发表于 2009-7-24 12:46 | 显示全部楼层
楼主真是个细心人,对我帮助很大,谢谢了~~: i1 H8 Y; A& K6 M) D
欢迎多多分享心得。5 X& H: W# L) X: `& [7 V6 c
我也准备尝试做些小玩意,呵呵
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-24 13:24 | 显示全部楼层
blogspot.com 这个域名似乎被GFW屏蔽
4 Z+ N+ |/ W3 y1 o% k& W如果使用国内的博客服务可能问题较少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 13:58 | 显示全部楼层
原帖由 yydy 于 2009-7-24 13:24 发表
$ P8 H6 j0 j% ?- N6 C5 Nblogspot.com 这个域名似乎被GFW屏蔽
/ Z8 f5 q; n& S+ W如果使用国内的博客服务可能问题较少

9 z5 q6 `9 J3 C" _: x; Q/ x请建议一个给我吧, 我不太懂国内的情况
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-24 16:47 | 显示全部楼层
问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同
8 y. H- }* T0 V  T$ J/ W7 s我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的
. P9 T; Z9 e6 T没有file->new mojo application
! x" L6 A* B+ M. h" x- `0 C也没有右手键->new->mojo scene
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 17:20 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-24 16:47 发表
9 V1 n- A# y- U: P* C  v6 N问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同
. ?0 G9 {  m8 y) f. K9 w我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的* X7 o! o5 E; w; H
没有file->new mojo application5 R$ I3 e$ \: _- [
也没有右 ...
8 |6 g3 |  {" V0 E7 f  y) R' h: o
因为你这个不是Palm 官方的, 请参照这个官方的做法:# p: T( U2 I5 D( c$ G, B
http://developer.palm.com/index. ... article&id=1639
4 T# [2 D) p0 i7 y, _) d5 p" X! X1 @+ y- w" i# {
第三天的学习完成, 不过很累... ... 未有时间打回文章
6 b0 z9 n% C5 ^. e# Y近日没有工作才有这么多的时间去学这个SDK ><" 郁闷中.... ...
& }% b) _* m) h6 ]7 Z9 `6 j' Z" \0 m; P" a
[ 本帖最后由 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上的安装插件
/ H9 o! g7 H, c! u不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml& [9 @4 j4 k1 j
??
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-25 18:43 | 显示全部楼层
LZ,在你的blog上留了言,请教helloworld的问题
8 |9 x+ X8 X  @/ W1 |4 Z6 B6 _
  \* W& D- Y% N& g3 E+ e3 w想在helloworld这个例子里多加一个button,tap一下就减一个数6 W( V$ j) l8 u  V4 @0 _
于是在first-scene.html里添加:
, j% C4 V8 z) A% k9 |' U6 t<div id="MyButton2" x-mojo-element="Button"></div>. O/ o$ B+ c; s6 `- z
8 Q& L4 c$ W) }7 J
在first-assistant.js的FirstAssistant.prototype.setup里添加:# \1 H$ o0 u8 D. J& |
this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model={buttonLabel: 'Decrement Down', buttonClass: 'negative'});
( n2 m, d' a# WMojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));" {) n7 G# w& J' q+ W

: Q, b4 d: |/ X2 p: k/ R4 Q并添加' [  o+ \- K0 Q4 P8 h# t
FirstAssistant.prototype.MyButton2 = function(event){1 F- q4 C8 t2 d) s, I. r
    this.total--;
0 u: I0 n! p! L" B3 H: d7 U    this.controller.get('count').update(this.total);' ~% j- t3 B1 D- h. {8 y7 `
}/ n9 l/ M! u, r  U/ E0 T8 N. Z" N1 `" Q
# A- j" ~) V% [
以上完成后,run,连第一个button都不显示了,不知道错在哪里,请指教~thanks
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 21:32 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-25 14:37 发表
( b3 ^8 N1 [- T1 e0 z9 @! i按照http://developer.palm.com/index. ... article&id=1639上的安装插件
! t+ l6 Z; Q9 Z. c! s! K2 V不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml
# ^2 Y6 h1 g) g! n? ...
* f' C+ g6 M& X* n" a' Y7 \$ y$ f
你的Eclipse 是否最新版本呢?
$ c8 Y2 ~% U9 x9 c" _8 O% `" Y5 u2 e- z
" N6 X! p* u2 ?$ k" k) u
原帖由 rory 于 2009-7-25 14:57 发表 / P# E2 W& {, K% L* u
Hi,樓主的BLOG是我經常去的,好東西呀.
7 M, A1 V( N- s
好东西就多上便行了
0 \/ J* d7 Y* ~( @% q' s
; Y  G( w- }, F- I5 `( o
$ U9 l: a! h6 x1 `( R
原帖由 prenewbie 于 2009-7-25 18:43 发表
( L, z3 y  n8 v/ @" u4 G& [6 s- ZLZ,在你的blog上留了言,请教helloworld的问题
' o& Y9 l/ q% q$ o( R. B- _; _* S9 T% Q! o0 z/ F: J8 L0 {
想在helloworld这个例子里多加一个button,tap一下就减一个数' W1 s0 w; t# {# a5 K2 S+ Y
于是在first-scene.html里添加:
* W* [0 a2 Z8 L/ Y1 D1 _
9 j2 |6 a. B# a$ F* }; |  U/ d. K1 o' o7 C8 v- t$ w
在first-assistant.js的FirstAssistant.prototype.setup里添加 ...
2 L, I! j$ G2 B' R% k
沒有任何问题尼, 你做错了什么?
  1. function FirstAssistant(){
    9 j/ L7 X! {# l! X
  2.     /* this is the creator function for your scene assistant object. It will be passed all the
    ) t# T0 @% M' w7 d% v& A7 V8 {, F
  3.    
    ) F3 j' ?4 V8 k: m
  4.      : H- j) K3 {! I% D! n) ^
  5.     $ G3 Y0 R6 ~6 ~5 A, B
  6.      additional parameters (after the scene name) that were passed to pushScene. The reference% _! I; r- n6 Q( Z5 \1 [2 t' W. H3 o
  7.    
    % l# U" k+ g3 i7 t$ ~2 R0 Z+ `" b
  8.        c) J) J" Q* n" Q/ Z
  9.    
    % P$ r; q$ D9 X- b# ^; i
  10.      to the scene controller (this.controller) has not be established yet, so any initialization
    ) E, ^4 K/ ~4 C5 G0 B& [3 \
  11.    
    8 J" b8 X' M2 ?' e
  12.      
    4 P! M8 O  \% N; U9 O
  13.    
    ! g% y2 g; q: f3 Y8 |% Z
  14.      that needs the scene controller should be done in the setup function below. */) U; ]; W1 v! \5 E& m5 T# P9 I, D: v
  15.     # s- |; }" h8 x9 U6 Y4 D
  16. }
    ( B5 Y8 q. e/ {7 n

  17. 5 v# _6 a6 S9 N5 j; l: y, W3 `
  18. FirstAssistant.prototype.setup = function(){
    ' ?' u$ D; G, y3 m) s

  19. ! |8 p' M' t$ G
  20.     // set the initial total and display it- F8 v/ l7 j' z5 D
  21.     this.total = 0;7 b' H' T7 o( ], f* L2 b
  22.     this.controller.get('count').update(this.total);2 E! [6 b5 n* @0 D9 V
  23.     8 b# I" u6 ?  [4 l8 W# @. A
  24.     // a local object for button attributes+ X3 N( d4 j" w
  25.     this.buttonAttributes = {};
    & l; o4 A! a' w
  26.     % \. {1 O+ t8 O1 v
  27.     // a local object for button model
    + S8 d1 B% R* S4 r. o+ [  s1 A
  28.     this.buttonModel = {
    9 J. _) \% T2 O( _2 M
  29.         buttonLabel: 'TAP HERE',& W9 H& |  l' L. i3 P
  30.         buttonClass: '',  r3 h9 p2 F, {  F* E
  31.         disabled: false
    ( n8 E) n. V4 _; _
  32.     };* [. ]5 b. l% p9 }) A" K- X, l
  33.     3 |  t( A1 G1 s
  34.     // set up the button5 J' b. }3 Z+ L9 a$ |( q& k
  35.     this.controller.setupWidget("MyButton", this.buttonAttributes, this.buttonModel);
    9 e* Y  N1 o" Q5 ~0 E; w  k
  36.     // bind the button to its handler
      C: q4 c9 e% y7 u2 Z4 |
  37.     Mojo.Event.listen(this.controller.get('MyButton'), Mojo.Event.tap, this.handleButtonPress.bind(this));
    * P/ Y7 Y% v( [8 }0 l5 ?' T
  38.     3 G/ [8 S" ?  _4 l: `
  39.     this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model = {( _6 `& e+ a. g, D
  40.         buttonLabel: 'Decrement Down',
    $ k  w6 B" A- s  M2 L9 h
  41.         buttonClass: 'negative'
    2 B6 E3 C- g# b7 L6 ]/ S6 a& }
  42.     });9 v+ u9 u8 u% G7 y$ W, m
  43.     Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));& M! j& [1 \/ w& s" P( d1 V
  44. }  m' p& `5 }8 }; N7 x+ @( N

  45. " M6 {5 [" F8 S" f
  46. FirstAssistant.prototype.activate = function(event){- ?4 [/ D$ x$ i6 }$ `5 p8 r: }# f
  47.     /* put in event handlers here that should only be in effect when this scene is active. For9 L: \1 o3 j5 v1 g
  48. 9 e& u7 i2 J9 a' _: F; r7 L
  49.      example, key handlers that are observing the document */9 j. \- d" f6 Z% A+ R' e. y1 p) {
  50.    
    6 [  D5 a. ~7 L3 z5 H* X' ]- J) |
  51.    
    ( q. @8 i! D5 o  _$ I+ ~/ J# M
  52. }
    7 X, z/ H5 U2 }" j

  53. ( E1 J3 f4 _# X5 _% F; G) T
  54. ; Q, V/ z6 y8 N7 \
  55. FirstAssistant.prototype.deactivate = function(event){
    9 [2 F2 q% P% D) ^- @
  56.     /* remove any event handlers you added in activate and do any other cleanup that should happen before
    5 i% z; j: o/ V" ?8 {# @1 ]6 ^5 T
  57.    
    + G3 G' A, w2 _* _- B* g, J
  58.      9 |+ G9 ~+ z6 J- I
  59.    
    " M+ }& J9 h2 K) \- d
  60.      this scene is popped or another scene is pushed on top */
    9 o& m& ~( V+ a8 @
  61.     # N  X$ {; |3 z6 r  F1 z7 I2 E
  62. }
    2 D/ y3 J# c5 g+ Q& U
  63. + h# V6 l2 {. [7 a+ ^7 D; ?" B
  64. FirstAssistant.prototype.cleanup = function(event){
    " |) X3 z- q/ F( m5 c% w7 ~. h) G
  65.     /* this function should do any cleanup needed before the scene is destroyed as # |% j% a/ i8 p$ |& D. C
  66.     ; g+ b9 y  y1 G7 |* j
  67.      , B, {) e3 ?% B$ H& I+ [* }7 B
  68.     " a, m( m* C/ P% G+ F3 m1 O
  69.      a result of being popped off the scene stack */
    $ r* ?1 d. I3 [8 i/ F
  70.       S  ~  b2 X% x# V& [
  71. }
    3 H# ?& \; O9 J; E6 M
  72. 6 y/ T( ^  D  B# y
  73. FirstAssistant.prototype.handleButtonPress = function(event){/ `8 {; Y7 w1 U4 }, w  d- r
  74.     // increment the total and update the display4 U1 p- ^; c& v  y
  75.     this.total++;
    / C( e2 ^' \% [- ~1 H8 u
  76.     this.controller.get('count').update(this.total);
    7 S; j" D) ]6 H" k
  77. }
    " Y9 z& s4 n* `: R) K

  78. % F( n, s# }/ o; T; Z7 o9 C) Y' @
  79. FirstAssistant.prototype.MyButton2 = function(event){% w( F) ?( O# y4 D$ v& B. L
  80.     this.total--;* P. A2 \5 x2 M8 Q
  81.     this.controller.get('count').update(this.total);
    . v. w$ j: {& O' q. }' R" b' D2 e  t
  82. }8 N. Y+ _5 j9 Z7 d; `  G
复制代码
>>星期六, 日要出街玩, 未有时间更新.0 O# z1 k- d" k, l; O, M
! ~2 `! y- i* F4 m, G
[ 本帖最后由 tedwong 于 2009-7-25 22:06 编辑 ]

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2009-7-25 22:56 | 显示全部楼层
谢谢LZ回复7 X" \4 a. y/ a6 W" }& U5 v
8 [' I, G" |5 u& z9 S
刚发现是自己的目录结构搞错了,应该是\view\first\first-scene.html,不小心多了一层目录\view\first\first\first-scene.html
3 l0 y* v/ c# K/ B4 p, i2 p
% R: }  B9 J) {3 r$ r5 A[ 本帖最后由 prenewbie 于 2009-7-25 23:34 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 23:26 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 22:56 发表
2 C. L: I! b" z( I1 P1 i谢谢LZ回复,又尝试了一下,还是不行,似乎我的first-assistant.js是没问题的,难道问题出在first-scene.html上?
* [+ ]- ]4 X) s. d
5 z. O5 N* m2 `& D  K; A- k    Header
! R5 ~# S  Y& ~% R* e+ U    0
  B/ ]  F1 [  \; w% ?# z! y9 p   
6 W  p  _+ d$ S  u8 Y2 K: l2 Q   
, Q4 e* N" U  j- R7 C
& ^" U9 d, ]# ^& v& v" N& @- [
沒有问题尼, 是否你设定环境的问题尼?
回复 支持 反对

使用道具 举报

发表于 2009-7-25 23:37 | 显示全部楼层
原帖由 tedwong 于 2009-7-25 23:26 发表
$ h( j+ Y& N0 {6 j' |$ ~
; @" r4 o$ h1 v; Y8 Z沒有问题尼, 是否你设定环境的问题尼?
' A. b4 h) [; A9 c8 o! d

* o+ Z+ M) ^8 M/ o, c解决了,非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 01:09 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 23:37 发表 7 ?* q% x5 {+ C- C! A4 N

$ k2 T4 h) N! q6 U& G8 `  \: ~; M8 z. E! R6 W8 n
解决了,非常感谢

1 i; y) O* {- M: Z- Y/ U, T( R0 R! H究竟是什么问题?
回复 支持 反对

使用道具 举报

发表于 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 发表 ( k5 q7 i& ?4 t- ~
是昨天刚下载的 可是就不行 555555555

% n0 p0 E6 j) \5 R1 E3 E& H- G3 P重新再add 多次, 这是一个Eclipse 的Bugs:
* p# F# Q1 ]: [2 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 发表 7 y! k3 x( R  [& j+ J
这个很棒啊。回头我们这边找个合适的地方给楼主放东西。。让大家都方便些

6 f- E5 A' r; u5 }不用了, 我又不是时常更新
回复 支持 反对

使用道具 举报

发表于 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& E1 o8 A) \! _
怎么打不开了?墙内墙外都打不开。
回复 支持 反对

使用道具 举报

发表于 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什么时候能再更新下呢?
4 E1 ^3 `4 i9 q+ k! `" R- y
回复 支持 反对

使用道具 举报

发表于 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:25 , Processed in 0.403238 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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