Salesforce DUG meetup #4 LT

20
Salesforce Developer User Group [Tokyo] Meetup #4 Lightning Talks Salesforce1 パブリッシャーアクションの歩き方 (Visualforce) 倉谷 (@a_kuratani) 2013/12/18

description

2013/12/18 Salesforce Developer User Group Meetup #4 LT Salesforce1 パブリッシャーアクションの歩き方

Transcript of Salesforce DUG meetup #4 LT

Page 1: Salesforce DUG meetup #4 LT

Salesforce Developer User Group [Tokyo] Meetup #4 Lightning Talks

!Salesforce1 パブリッシャーアクションの歩き方

(Visualforce編)

倉谷 彰(@a_kuratani)2013/12/18

Page 2: Salesforce DUG meetup #4 LT

自己紹介

倉谷 彰 @a_kuratani

株式会社チームスピリット

R&Dグループ エンジニア

Force.com Advent Calendar 管理人 http://atnd.org/events/45110

Page 3: Salesforce DUG meetup #4 LT

Salesforce1対応の機能を 開発していますか?

Page 4: Salesforce DUG meetup #4 LT

Salesforce1 の開発方法は…

Page 5: Salesforce DUG meetup #4 LT

今回は…

Page 6: Salesforce DUG meetup #4 LT

Visualforceページで パブリッシャーアクション

を作る

Page 7: Salesforce DUG meetup #4 LT

…ために使える メソッド/イベントを

紹介します

Page 8: Salesforce DUG meetup #4 LT

利用できるメソッド

Page 9: Salesforce DUG meetup #4 LT

publish publisher.setValidForSubmit

•送信ボタンを活性化する

!

•送信ボタンを非活性化する

!

•ポイント非Salesforce1では送信ボタンが表示されない

Sfdc.canvas.publisher.publish( { name : “publisher.setValidForSubmit", payload:”true" });

Sfdc.canvas.publisher.publish( { name : “publisher.setValidForSubmit", payload:”false" });

Page 10: Salesforce DUG meetup #4 LT

publish publisher.close

•アクションを閉じる

!

•ポイント非Salesforce1環境ではアクションを閉じる動作がない

Sfdc.canvas.publisher.publish( { name : “publisher.close", payload : { refresh:"true" } });

Page 11: Salesforce DUG meetup #4 LT

publish publisher.refresh

•フィードをリフレッシュする

!

•ポイントSalesforce1環境ではアクションを閉じるときにフィードをリフレッシュするので不要(非Salesforce1環境用?)

Sfdc.canvas.publisher.publish( { name : “publisher.refresh”, payload : { feed:"true" } });

Page 12: Salesforce DUG meetup #4 LT

Force.com Canvas SDKの イベントが一部利用できる

Page 13: Salesforce DUG meetup #4 LT

subscribe publisher.setupPanel/showPanel/clearPanel

•アクションを含む画面が表示されたときの処理

!

•アクションがアクティブになった時の処理

!

•アクションが非アクティブになった時の処理

Sfdc.canvas.publisher.subscribe( { name : “publisher.setupPanel”, onData:function(e) { alert('setupPanel'); } });

Sfdc.canvas.publisher.subscribe( { name : “publisher.showPanel”, onData:function(e) { alert('showPanel'); } });

Sfdc.canvas.publisher.subscribe( { name : “publisher.clearPanel”, onData:function(e) { alert('clearPanel'); } });

Page 14: Salesforce DUG meetup #4 LT

subscribe publisher.post

•送信ボタンが押下された時の処理Sfdc.canvas.publisher.subscribe( { name : “publisher.post”, onData:function(e) { alert('post'); } });

Page 15: Salesforce DUG meetup #4 LT

subscribe publisher.getPayload/setPayload/success/failure

• Visualforceページでは利用できなさそう

•参考文献http://www.slideshare.net/developerforce/df13-salesforce1-mt

Page 16: Salesforce DUG meetup #4 LT

まとめ

タイプ 名称 S1 非S1 備考

メソッドpublisher.setValidForSubmit

◯ ✕

publisher.close ◯ ✕

publisher.refresh ✕ ◯

Canvasイベント

publisher.setupPanel ◯ ◯ 非S1は初回のみpublisher.showPanel ◯ ◯publisher.clearPanel ◯ ◯publisher.post ◯ ✕

publisher.success ✕ ✕

publisher.failure ✕ ✕

publisher.getPayload ✕ ✕

publisher.setPayload ✕ ✕

Page 17: Salesforce DUG meetup #4 LT

demo

Page 18: Salesforce DUG meetup #4 LT

パブリッシャーアクションを作って学んだこと

•下記のメソッドが使えればSalesforce1対応はできる setValidForSubmit / post / close ※非Salesforce1では動作しない

•非SalesforceではSubmitしてもアクションが閉じない Submit後に完了画面を表示する、など対応が必要

•送信ボタンは目立たない、かつ、非Salesforce1環境では表示されないSubmitボタンは自作したほうがわかりやすい?

Page 19: Salesforce DUG meetup #4 LT

Sample Source Code

• Gisthttps://gist.github.com/kuratani/8007952

!

!

•求む!株式会社チームスピリットでは一緒に開発してくれる 開発者の方を募集中です。ご興味のある方はお声がけください!

Page 20: Salesforce DUG meetup #4 LT

Enjoy Salesforce1