titanium android push notification:使用gcm module

使用Titanium開發android app,如果要實做push notification 功能可以使用gcm module,步驟如下:

1.上github,clone titanium gcm module
Github:https://github.com/MR-SC/titanium-gcm
原作者:https://github.com/liccowee/Google-Cloud-Messaging–Titanium-

2.下載下來後,修改timodule.xml,把裡面的package name改成你的app的package name,然後重新build~

3.修改tiapp.xml
增加以下屬性,並且改成你自己的sender_id/package-name/project-name

4.修改index.js
在你的index.js增加以下code

以上為你的app再background running的時候,一切都會正常,因為callback函式會被觸發。
但是若你的app並沒有在背景執行,這個callback並不會被觸發,所以需要再加一些code,如下。

因為這個gcm module會把你從server push到手機的data存在Ti.App.Properties的”com.activate.gcm.last_data”屬性。
所以即使app不在背景執行,當使用者點了notification後會啓動app,然後再透過上面得到資料,然後就可以做你想做的事。但記得做完你想做的事要把該屬性設為null,否則下次又會拿到相同舊的資料。

以上為gcm module使用方法,僅供參考。

Titanium:製作Module(使用Mac)

在使用Titanium開發android & ios app的時候常常需要使用到module來擴充功能。
以下是製作module的步驟

Android module
1.打開Titanium studio在project explorer下點右鍵建立module
螢幕快照 2014-03-11 下午1.24.31

之後點選android module
螢幕快照 2014-03-11 下午1.29.18

說明:建立完後你可以自行在/src目錄下找到.java檔案,你可以自行編輯並且擴充你想要的原生功能。寫完後就可以開始編譯,步驟如下。

2.安裝apache ant
可以到官網看說明:http://ant.apache.org/

3.安裝android ndk
可以到android developer頁面看說明:
https://developer.android.com/tools/sdk/ndk/index.html

4.修改build.property
加入以下這行讓module找得到ank
android.ndk=/Users/xxx/Downloads/android-ndk-r9c

5.如果有需要可以修改.classpath
如果你需要引入一些外部lib,可以放在根目錄下的lib,然後修改根目錄下的.classpath檔案。
例如:
<classpathentry kind=”lib” path=”lib/facebooksdk.jar”/>

6.之後下ant 指令
在module根目錄下打ant指令即可,之後會多出一個dist目錄,裡面有一個壓縮zip檔,就是已經build完的module。

7.引入module
將.zip檔案放到~/Library/Application Support/Titanium 下解壓縮,titanium會自動將該module的zip檔解壓縮至正確的位置。

以上就是在Mac下製作android module的步驟清單,之後修改tiapp.xml將該module納進來即可。

Ios module
1.同android一樣create一個module,只是要改成選ios module

2.編輯.xcodeproj
修改module根目錄下的.xcodeproj,可以打open modulename.xcodeproj。
之後會開啓xcode。
之後可以在Classes下找到xxxModule.m,你可以編輯它,增加你要的功能。

3.Link Binary with libraries
如果你需要納入外部的library,可以在該project下新增,如下圖。
螢幕快照 2014-03-11 下午2.02.35
修改完存檔離開即可。

4.修改module.xcconfig
回到module根目錄下面,編輯module.xcconfig,增加OTHER_LDFLAGS屬性。
例如以下:
OTHER_LDFLAGS=$(inherited) -framework Foundation -framework CoreGraphics -framework UIKit -F”/Documents/FacebookSDK” -framework FacebookSDK

5.編譯
之後回到module根目錄打./build.py即可,會在根目錄下建立一個.zip檔,同樣放到根android一樣的位置並解壓縮即可。

以上爲製作Titanium ios module的步驟。

本篇文章爲製作Titanium andorid & ios module的方法,僅供參考。

Titanium:實做Ios app的Push notification功能

以下是使用Mac實做Ios app的push notification功能:

step1.註冊Ios開發者帳號,一年要$99美元
由於開發Ios app一定要有開發者帳號,否則無法在實機上測試。註冊完開發者帳號後可以進入第二個步驟。

step2.製作certificate
螢幕快照 2014-02-09 上午9.11.48

點選Mac>應用程式->工具程式(資料夾)->鑰匙圈存取
進去之後上方bar的鑰匙圈存取->憑證輔助程式->從憑證授權要求憑證
之後輸入電子郵件,一般名稱與下方選儲存至硬碟。
之後儲存至桌面push.certSigningRequest
#注意:上面的檔名為你在titanium的project name,例如你的Titanium的id可能是com.companyname.push

螢幕快照 2014-02-09 上午9.20.52
之後下方點鑰匙,會發現剛剛已經儲存的push.certSigningRequest
點選右鍵並輸出成.p12檔至桌面

此時你應該有兩個檔案push.certSigningRequest與push.p12

繼續閱讀 “Titanium:實做Ios app的Push notification功能”

titanium:ios push notifications 筆記

http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

http://blog.toright.com/archives/2806

http://tw.websense.com/content/support/library/mobile/admin_help/start_apn.aspx

tutorial:
1.http://www.titaniumtutorial.com/2012/07/appcelerator-cloud-push-notification-in.html
2.ios how to create push certificate
http://quickblox.com/developers/How_to_create_APNS_certificates
3.http://iosmuncher.blogspot.tw/2012/06/implementing-apns-in-titanium-start-to.html
4.http://blog.teemusk.com/2012/05/building-server-push-notifications-with-appcelerator-titanium-cloud/
5.http://justfly.idv.tw/2012/04/27/Just_1195.html
6.http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

https://discussions.apple.com/thread/5141135

Managing ios device:
http://www.apple.com/iphone/business/it/management.html

Apple push certificates potal:
https://identity.apple.com/pushcert/

stackoverflow:
http://stackoverflow.com/questions/9743690/generate-mdm-certificate
http://www.softhinker.com/in-the-news/iosmdmvendorcsrsigning

Apple forum:
https://devforums.apple.com/community/support

ios developer library:
1.https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ManagingAccounts/ManagingAccounts.html#//apple_ref/doc/uid/TP40012582-CH24-SW1
2.https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction.html

Apple discussion:

https://discussions.apple.com/thread/5141135

run app on ios device:
http://www.ralfebert.de/archive/ios/tutorial_iosdev/run_app/
http://www.dodyrw.com/how-to-run-titanium-ios-app-on-device/
http://docs.appcelerator.com/titanium/latest/#!/guide/Deploying_to_iOS_devices
http://www.dodyrw.com/how-to-run-titanium-ios-app-on-device/
http://fstoke.me/blog/?p=1805