找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 7671|回复: 36

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

[复制链接]
发表于 2009-7-24 11:36 | 显示全部楼层 |阅读模式
这个学习的笔记是个人学习 WebOS 的一些经验分享, 不是什么正式的教学, 不过有兴趣的朋友亦可以当教学使用, 亦不是一些专业的书籍, 不过大家都可以当作 Mojo SDK 学习的参考. 5 _# n1 T. S  {; G* N" F& ^7 w

9 d4 C3 v" r7 L2 H- W1 w( r+ O我不定时会更新这篇笔记, 希望有兴趣开发WebOS 的朋友可以大家帮助, 虽然未有实机, 至少也公开了模拟器, 大家加油.
, i# k$ R: B6 P/ f3 v1 c) D" U' _# K4 A' I, X
WebOS_Notes_Big5_XXXXXXXX.pdf 为繁中版
0 g$ O# P1 f* s3 e6 {WebOS_Notes_GBK_XXXXXXXX.pdf 为简中版
' Q4 U( W! f, D
6 \$ }6 Z8 F' g% Q( A, J' h原码暂时未放出, 因为很多东西要整理, 不定时更新, 多多指教
( i2 |$ a' O; L' H6 R0 J! @2 U/ j% T+ v
>>这里下载<<* |6 P% X5 b- |0 j2 P; ~6 T" q
* f4 W, r' a/ J  K% K
出处当然是小弟的Blog:( A% K9 o3 E2 ^/ H
http://pre-dict.blogspot.com/
6 d) \& a, t6 |- j8 P/ y4 i$ |
# E+ ]/ D' n0 U0 L% B! j0 T***有朋友指出国内上不到我的Blog, 所以我上载文档到这边了***8 ~4 F8 ^* P0 k- M
有没有国内的朋友方便可以帮手校对和转成简体, 因为我的原版本是繁体的.
$ v# C8 |2 _1 n! j- x7 x" E如果没有的话, 可能简体要比繁体迟一点出来, 毕究要花点时间转换.% I8 E" q/ H* f7 ]! {- k  |

6 |# }" W5 T* {2 i! z. W[ 本帖最后由 tedwong 于 2009-8-2 00:17 编辑 ]

评分

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

查看全部评分

回复

使用道具 举报

发表于 2009-7-24 12:46 | 显示全部楼层
楼主真是个细心人,对我帮助很大,谢谢了~~8 c) D) A% y: G3 D8 A& A& h  F
欢迎多多分享心得。+ N+ D/ t- W- S: b& C, K
我也准备尝试做些小玩意,呵呵
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-24 13:24 | 显示全部楼层
blogspot.com 这个域名似乎被GFW屏蔽
: I. y, C+ x! k. }( I! U5 p: ]如果使用国内的博客服务可能问题较少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 13:58 | 显示全部楼层
原帖由 yydy 于 2009-7-24 13:24 发表 . n" Z) T# C7 R% Y0 P8 g, D
blogspot.com 这个域名似乎被GFW屏蔽0 z8 w  M6 g$ F0 ?. z2 H7 S5 X
如果使用国内的博客服务可能问题较少
2 X# k4 x, V% J( Q- K
请建议一个给我吧, 我不太懂国内的情况
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-24 16:47 | 显示全部楼层
问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同" `5 s1 z- K' O; v" f* J
我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的% J4 H* m! z8 \4 p9 X( y8 _3 C/ A
没有file->new mojo application/ q( }% ^* v( j# b* \& O; P* X6 T7 P9 J
也没有右手键->new->mojo scene
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-24 17:20 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-24 16:47 发表
+ |# N% {  R9 S6 I# _7 J问一下你的eclipse开发环境是怎么配的,为什么和我的有那么多的不同$ e% y% U9 o- x5 c3 L0 ]
我是按照http://www.palmpreschool.com/200 ... -the-webos-plug-in/装的+ m8 y% X1 ?* B* L
没有file->new mojo application
* u/ x) J' E) x0 F) `6 S% |也没有右 ...

' E- M/ S  k8 Z$ ^$ l- I8 r$ `因为你这个不是Palm 官方的, 请参照这个官方的做法:6 x1 P$ o0 Q4 R
http://developer.palm.com/index. ... article&id=1639
- f* A" U* o" b, t( Z6 v" e/ r/ I+ R" }  \3 O6 p- l/ L
第三天的学习完成, 不过很累... ... 未有时间打回文章
" `4 `" Z/ {' r  v+ C近日没有工作才有这么多的时间去学这个SDK ><" 郁闷中.... ...6 u- I/ {+ t6 j0 l( M, F' S

- F; @5 j  \7 x; x: M[ 本帖最后由 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上的安装插件
% Z9 X+ T- N4 A( F# J0 Q8 ?, R' ~; Y不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml
6 g8 q& I' h( A) j' ]' n??
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-7-25 18:43 | 显示全部楼层
LZ,在你的blog上留了言,请教helloworld的问题* j5 d0 A# b* @* m
9 \% W1 y: C( b& N% }/ B; k0 Y  V
想在helloworld这个例子里多加一个button,tap一下就减一个数, M. J# J4 ^9 q4 W5 w& C
于是在first-scene.html里添加:
, G2 ]& n, N1 s- P+ D$ _3 U" N& D<div id="MyButton2" x-mojo-element="Button"></div>
2 |4 q5 L1 k9 P2 {4 m7 ~
( p* b) c3 Y- J8 z在first-assistant.js的FirstAssistant.prototype.setup里添加:
! r( P  S5 M, f3 _this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model={buttonLabel: 'Decrement Down', buttonClass: 'negative'});
" d$ F4 ~" K- nMojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));' ~) h# U* q4 m& E$ ]" i/ {4 @
) z- M  N6 y0 \2 o* w# O
并添加( g4 R" O5 }9 I# s5 {% M1 A
FirstAssistant.prototype.MyButton2 = function(event){
. O6 x- X; ]) l3 l% ]7 {    this.total--;
6 K! @$ R" {) y, K    this.controller.get('count').update(this.total);
1 T7 a4 V2 k) m$ T8 M% u}
/ g2 ]" L, l/ N2 ^4 A$ |/ o# E' r. ?3 ?
以上完成后,run,连第一个button都不显示了,不知道错在哪里,请指教~thanks
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 21:32 | 显示全部楼层
原帖由 xiaoqing1027 于 2009-7-25 14:37 发表
8 l: O7 \% p8 ~- U2 t按照http://developer.palm.com/index. ... article&id=1639上的安装插件; ^4 v5 J8 ^4 A6 l7 O7 B+ K
不过在add site 后出现NO repository found at https://cdn.downloads.palm.com/s ... clipse-3.4/site.xml
. j" Q& k2 ^; {? ...
, L) A. R8 @7 N2 t/ F
你的Eclipse 是否最新版本呢?+ J  `3 `7 q" {) U" k( }# U3 Z
0 J: w3 C" f' l5 H
# |& V: u: ^# @% D, O7 s
原帖由 rory 于 2009-7-25 14:57 发表 + B( e) F8 H9 J
Hi,樓主的BLOG是我經常去的,好東西呀.

9 C0 S5 r. F. d* C! p5 I好东西就多上便行了
; k3 k1 r* v) K- k& h9 |( E6 r5 c  `0 l& g* R6 B) ^) L

1 ^) w5 H2 J& k, \2 \
原帖由 prenewbie 于 2009-7-25 18:43 发表
  q% l, K, [9 U! v$ Y) t3 r0 a7 }LZ,在你的blog上留了言,请教helloworld的问题$ U' x' L" e1 I& H5 R9 v( O
7 x" W% n6 y: z. C9 H% L
想在helloworld这个例子里多加一个button,tap一下就减一个数
& S/ T, Y0 _  i; V6 J( X于是在first-scene.html里添加:
1 ^% j) l. ?6 ?% a
6 \2 x' O8 s1 W: `2 H5 b. C
( @* t1 A0 t  {5 g3 Z在first-assistant.js的FirstAssistant.prototype.setup里添加 ...

6 b* @$ \( f7 {! {5 R沒有任何问题尼, 你做错了什么?
  1. function FirstAssistant(){1 Q! M% \& _3 l+ `
  2.     /* this is the creator function for your scene assistant object. It will be passed all the
    9 G( o' y7 P* ^: T
  3.    
    : D8 W" V" l2 [
  4.      . n0 l2 }8 ^9 A% Z5 Q
  5.    
      @) m4 G; S* r; Y+ h; I
  6.      additional parameters (after the scene name) that were passed to pushScene. The reference
    2 H) S: M# G& L/ t* T0 C$ {
  7.     & N! P& \2 d$ o6 s/ l3 x
  8.      
    $ c, l1 S" B0 z9 X4 O
  9.    
    , L: ?+ v# z$ m$ U2 b$ ]4 I
  10.      to the scene controller (this.controller) has not be established yet, so any initialization$ `6 v2 {( |: O! b- W
  11.     * D2 p# j7 ~% q
  12.      
    " V2 N$ }) g0 Z
  13.     ; A, d3 t, J5 |, ^2 B8 H$ S' d
  14.      that needs the scene controller should be done in the setup function below. */
    # a. _/ A' m# h( r3 n! ^
  15.    
    + @; `& M8 |4 Z
  16. }
    ( M! w8 `. l) x6 r, E/ \

  17. $ V2 t0 w6 [, Y6 Y8 G" l
  18. FirstAssistant.prototype.setup = function(){
    - D* V8 c- L% G! ~

  19. 0 C5 U" D# m8 a) S
  20.     // set the initial total and display it; A& l) R7 }5 S+ {
  21.     this.total = 0;
      v9 |' L) ]! p  l, q" {: Y/ W
  22.     this.controller.get('count').update(this.total);" _: _! `0 U; E
  23.    
    : b* }0 }- K) U) C
  24.     // a local object for button attributes
    $ O# {6 X7 H& w8 r3 ?2 M
  25.     this.buttonAttributes = {};
    ( k$ u7 j$ k: t) j
  26.     # b3 k# U, ^" W9 F' }
  27.     // a local object for button model1 o' [; W& U. P* w! _& y
  28.     this.buttonModel = {* P% v2 d: r7 ~! o: ~" H
  29.         buttonLabel: 'TAP HERE',
    ( u  x/ U  d0 Z3 n( l
  30.         buttonClass: '',
    + x1 ]% e) P2 V  t3 T3 H
  31.         disabled: false
    ( c$ g! T& n) U$ \* z
  32.     };
    % m1 X1 j0 q+ d4 B; i. ]* ^3 p* p
  33.     % B  C  Q2 E5 U" P; X
  34.     // set up the button; n6 M5 h( Z, F( A* ^! ~& ^
  35.     this.controller.setupWidget("MyButton", this.buttonAttributes, this.buttonModel);2 t3 `" S+ a5 ]! ]3 `& s7 \5 G
  36.     // bind the button to its handler* k! b+ K5 ?& d% ?# x+ a
  37.     Mojo.Event.listen(this.controller.get('MyButton'), Mojo.Event.tap, this.handleButtonPress.bind(this));( C9 d& D3 \: T
  38.    
    & P8 B: K) A# }6 R# y; `
  39.     this.controller.setupWidget("MyButton2", this.buttonAttributes, this.model = {
    . ~" o( n, t' l7 D1 b; v
  40.         buttonLabel: 'Decrement Down',
    , K# p+ B0 I! T: z- ~+ i  f- Z% c
  41.         buttonClass: 'negative'
    : ], g: O  b( v+ J; d: ~
  42.     });3 J  Z( P$ P0 Y) R
  43.     Mojo.Event.listen(this.controller.get('MyButton2'), Mojo.Event.tap, this.MyButton2.bind(this));
    % p3 n) R$ @( Z& v; q) `! k/ B
  44. }3 l# I/ D7 V5 G4 N6 Y' v  j, J$ m6 f
  45. 3 y. W$ b8 W( e  Z( B# L6 L
  46. FirstAssistant.prototype.activate = function(event){; B6 h9 S- c! B* k5 P! p/ c6 H5 m
  47.     /* put in event handlers here that should only be in effect when this scene is active. For7 J/ C% G' r# I& t

  48. 9 _+ x; c  o; R
  49.      example, key handlers that are observing the document */1 U7 q  G* H7 x( f. f
  50.    
    4 [; o) E% |; D. t
  51.     $ V4 @% m; x. L4 y9 K6 K# M2 v
  52. }7 I1 n4 b# C; I9 O1 x
  53. 5 l/ v, W0 a" O

  54. # O  r) _# a! ^, Y
  55. FirstAssistant.prototype.deactivate = function(event){
    ' l( V- }5 j( B7 z: S3 M' ?% Z5 f
  56.     /* remove any event handlers you added in activate and do any other cleanup that should happen before+ [7 w5 B* [' W
  57.     7 I9 a- W* {: `' [# J
  58.      
    9 n2 Z" Y5 X( {/ ~, E2 K' }& y2 x
  59.     , x$ i  S& E' V3 n5 K/ E
  60.      this scene is popped or another scene is pushed on top */
    # p' G! o" |+ k' ]3 g
  61.    
    , q8 Z8 N! N( J2 J* x$ _, ]* b
  62. }
    3 N' x# X+ n) ^+ u1 W% d  e0 |
  63. # \$ L! t+ Y0 Q4 O
  64. FirstAssistant.prototype.cleanup = function(event){  s: J, G5 H3 {' V. y% O) U6 H
  65.     /* this function should do any cleanup needed before the scene is destroyed as
    9 e, f) c& Z) d$ y6 U3 f- K' c+ [& g
  66.    
    % g; x2 s* r  `4 g  t- F+ A4 m0 ]
  67.      " C7 C: U3 Y% r5 F" s$ ~
  68.     / G5 ]/ l: }: v# y% C2 i/ Z$ d
  69.      a result of being popped off the scene stack */
    & i* {. Y# j( k& U, P) |
  70.    
    4 B% z" |% x$ N0 D7 }8 Q- Y4 i
  71. }
    " E& R1 k  {4 o& H/ S4 i1 b* E( g

  72. 0 U4 o$ }5 H1 ?2 i7 ]# Z% T) ^
  73. FirstAssistant.prototype.handleButtonPress = function(event){* s: A5 U9 }, q3 \; V& p( ]$ m
  74.     // increment the total and update the display
    . m# d% L5 O( j1 Y
  75.     this.total++;, e) _, t0 S& H. z1 q
  76.     this.controller.get('count').update(this.total);1 r5 [' w1 v- r* H( ~7 S+ K
  77. }
    / k' ^# ~3 X) Z' O0 f) G  E$ Q

  78. ' k& ~% n; a. O1 |6 A6 k, D( W' Q. F
  79. FirstAssistant.prototype.MyButton2 = function(event){
    - f6 M, A: h+ r. y! v5 t' G
  80.     this.total--;
    - P. a" ?/ s- {" ~
  81.     this.controller.get('count').update(this.total);
    ; F! @2 N  o: U0 G
  82. }. u" Q$ q+ t- x8 K
复制代码
>>星期六, 日要出街玩, 未有时间更新.3 q3 Q2 B! j; [5 R

: [; k1 Y& W* n" g$ E8 w( G[ 本帖最后由 tedwong 于 2009-7-25 22:06 编辑 ]

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2009-7-25 22:56 | 显示全部楼层
谢谢LZ回复! h0 F; }5 l9 r  l5 |  ^
" H0 K. J( I0 h0 `. p2 e
刚发现是自己的目录结构搞错了,应该是\view\first\first-scene.html,不小心多了一层目录\view\first\first\first-scene.html( Z& `9 {$ x/ m) V

, x$ Y7 v' f# \$ i% t; b/ s3 k# i  N[ 本帖最后由 prenewbie 于 2009-7-25 23:34 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 23:26 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 22:56 发表
5 i! j5 X0 o' S* A6 D3 c谢谢LZ回复,又尝试了一下,还是不行,似乎我的first-assistant.js是没问题的,难道问题出在first-scene.html上?
" Y1 I4 c6 v1 C& |4 j
$ H3 _* J/ m/ E3 C3 x/ ^    Header
7 G- [( t( o2 v5 o/ K. f    0
# n0 b1 E8 _$ {! L. m& D7 d   
3 r$ R8 c4 {& K, Q. y   
  O- l5 s* m8 C8 t6 z

: w" d$ S$ w. X) X, Q" [2 I沒有问题尼, 是否你设定环境的问题尼?
回复 支持 反对

使用道具 举报

发表于 2009-7-25 23:37 | 显示全部楼层
原帖由 tedwong 于 2009-7-25 23:26 发表 " j: i; R5 J& _4 ]
) q; |" w! D" s! g  |
沒有问题尼, 是否你设定环境的问题尼?

$ V- t+ G+ L' c! F. E( W
. l5 a3 e4 I! K7 d7 G" C# l解决了,非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 01:09 | 显示全部楼层
原帖由 prenewbie 于 2009-7-25 23:37 发表
! l7 b2 x7 _$ x2 l9 ~0 l* m; o% f# l/ r+ [/ q
! l* w8 x' M$ W! ?# F3 h' ~, g1 h
解决了,非常感谢

4 ~2 Y' G8 J" O究竟是什么问题?
回复 支持 反对

使用道具 举报

发表于 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 发表 6 R1 O; e- E9 d' H2 D" d
是昨天刚下载的 可是就不行 555555555

; Z: N" c8 ~. {& S: s3 G重新再add 多次, 这是一个Eclipse 的Bugs:/ \, O# w3 F8 E& q( F4 M
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 发表 - z6 k8 k! W7 S! ?4 e4 O/ Y( P
这个很棒啊。回头我们这边找个合适的地方给楼主放东西。。让大家都方便些

* L; }* n* u0 U( j, L+ Y不用了, 我又不是时常更新
回复 支持 反对

使用道具 举报

发表于 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-note4 O# U. J. X/ O% K) N
怎么打不开了?墙内墙外都打不开。
回复 支持 反对

使用道具 举报

发表于 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什么时候能再更新下呢?3 M* F; m* h5 {2 W/ C- I  V
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-1 21:32 , Processed in 0.394532 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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