ad_728x90

2015年10月11日 星期日

Parse SDK 做 Push Notification

Parse SDK 做 Push Notification

http://katewin.logdown.com/posts/201924-using-parse-sdk-for-push-notification
Parse 官網: https://parse.com/
它提供的不只有推播訊息,還有其他功能,例如雲端資料建置,這會在下次介紹。
SDK 和官方說明文件必須註冊後才能取得。
目前筆者主攻 Android ,所以以下都針對 Android 開發部分介紹。
進到官方導引頁面之後,可以看到有兩個選擇,其實選哪個都沒差。
選擇空的專案,只是會讓你下載一個已經放好 SDK 的空 Android 專案。

螢幕快照 2014-05-29 上午11.56.21.png
而已存在的專案,只要把下載好的 SDK 解壓縮到專案的 libary 資料夾即可。
螢幕快照 2014-05-29 下午12.44.55.png
接下來就是程式碼的設定。
因為它的啟動是放在整個應用裡,所以要先新建一個 MyApplication.java 檔案。


MyApplication.java
public class MyApplication extends android.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Parse.initialize(this, applicationId, clientKey);
        PushService.setDefaultPushCallback(this. MainActivity.class);
        ParseInstallation.getCurrentInstallation().saveInBackground();
    }
}

applicationId 和 clientKey 在網頁裡都有提供, MainActivity 是你應用裡主要的Activity。
別忘了建立好之後在 AndroidManifest.xml 的 application 標簽裡加上去。


AndroidManifest.xml
<application
        ......
        android:name=".MyApplication"
        >

啟動完成再來就是設定接收 push 的部分了,請加在 AndroidManifest.xml 裡的 application 標簽之間。
com.parse.starter 的部分要替換成你的 package 。


AndroidManifest.xml
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver">
  <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <action android:name="android.intent.action.USER_PRESENT" />
  </intent-filter>
</receiver>
<receiver android:name="com.parse.GcmBroadcastReceiver"
    android:permission="com.google.android.c2dm.permission.SEND">
  <intent-filter>
    <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
 
    <!--
      IMPORTANT: Change "com.parse.starter" to match your app's package name.
    -->
    <category android:name="com.parse.starter" />
  </intent-filter>
</receiver>

最後是打開權限,加在 AndroidManifest.xml 裡的 manifest 標簽之間。一樣要注意 com.parse.starter 的部分。


AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
 
<!--
  IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
  to match your app's package name + ".permission.C2D_MESSAGE".
-->
<permission android:protectionLevel="signature"
    android:name="com.parse.starter.permission.C2D_MESSAGE" />
<uses-permission android:name="com.parse.starter.permission.C2D_MESSAGE" />

就大功告成啦!

COMMENTS HAVE BEEN DISABLED FOR THIS POST [文章的評論已被禁用]

Ratings and Recommendations by outbrain