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的方法,僅供參考。

android app,使用gcm

到https://cloud.google.com/console/project登入開發者
註冊完後選api&auth,之後在google cloud messaging for android從off打開至on
之後點選credentials產生一個appid(記得產生keystore)

最後點overview你會看到projectid就是senderid

如果有用titanium,再將appid,senderid輸入至後台

http://developer.android.com/google/gcm/gs.html

http://justfly.idv.tw/2013/01/16/Just_1538.html

http://developer.android.com/google/gcm/gcm.html#register

https://sites.google.com/site/s70487s/android-research/gcm

https://github.com/Guti/Google-Cloud-Messaging–Titanium-/blob/master/dist/com.activate.gcm-android-0.5.zip

android apk 產生keystore

相關文章:
http://developer.android.com/tools/publishing/app-signing.html
http://wazai.net/1916/%E7%B0%BD%E7%BD%B2%E4%BD%A0%E7%9A%84android%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F-keystore