PhoneGap與極光SDK整合,實現消息推送

1.註冊極光的開發者帳戶,並註冊應用信息。android



建立賬號進入極光推送平臺後,首先顯示的是建立應用的界面。填上你的應用程序的名稱,以及 Android包名這二頂就能夠了。


用建立成功,即進入「應用詳情」顯示界面。這個界面右下角,你能夠看到 「appkey" 後面會用到。

 
 
api

2,下載 sdk包。就行整合服務器



具體的流程能夠看如下文檔,固然phonegap的整合和這個有些不一樣。

http://docs.jpush.cn/pages/viewpage.action?pageId=557214

 
網絡

3.SDK集成步驟app


一、導入 SDK 開發包到你本身的應用程序項目

    解壓縮 jpush-sdk_v1.x.y.zip 集成壓縮包
    複製 libs/jpush-sdk-release1.x.y.jar 到工程 libs/ 目錄下
    複製 libs/armeabi/libsys1.x.y.so 到工程 libs/armeabi 目錄下(若是你的項目有libs/armeabi-v7a這個目錄,請把libsys1.x.y.so也複製一份到這個目錄)

這裏需求注意的是:包導入進去以後必定要把包configuer building path。
二、配置 AndroidManifest.xml

根據 SDK 壓縮包裏的 AndroidManifest.xml 樣例文件,來配置應用程序項目的 AndroidManifest.xml 。

主要步驟爲:

    複製備註爲 "Required" 的部分
    將備註爲替換包名的部分,替換爲當前應用程序的包名
    將AppKey替換爲在Portal上註冊該應用的的Key,例如(9fed5bcb7b9b87413678c407)

 

    <?xml version="1.0" encoding="utf-8"?>

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="Your Package"

    android:versionCode="100"

    android:versionName="1.0.0"

    >

    <!-- Required -->

    <permission android:name="You Package.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />

    <!-- Required -->

    <uses-permission android:name="You Package.permission.JPUSH_MESSAGE" />

    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.VIBRATE" />

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!-- Optional. Required for location feature -->

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

    <application

    android:icon="@drawable/ic_launcher"

    android:label="@string/app_name"

    android:name="Your Application">

    <!-- Required -->

    <service

    android:name="cn.jpush.android.service.PushService"

    android:enabled="true"

    android:exported="false" >

    <intent-filter>

    <action android:name="cn.jpush.android.intent.REGISTER" />

    <action android:name="cn.jpush.android.intent.REPORT" />

    <action android:name="cn.jpush.android.intent.PushService" />

    <action android:name="cn.jpush.android.intent.PUSH_TIME" />

    </intent-filter>

    </service>

    <!-- Required -->

    <receiver

    android:name="cn.jpush.android.service.PushReceiver"

    android:enabled="true" >

    <intent-filter>

    <action android:name="android.intent.action.USER_PRESENT" />

    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

    </intent-filter>

    <intent-filter>

    <action android:name="android.intent.action.PACKAGE_ADDED" />

    <action android:name="android.intent.action.PACKAGE_REMOVED" />

    <data android:scheme="package" />

    </intent-filter>

    </receiver>

    <!-- Required SDK核心功能-->

    <activity

    android:name="cn.jpush.android.ui.PushActivity"

    android:theme="@android :style/Theme.Translucent.NoTitleBar"

    android:configChanges="orientation|keyboardHidden" >

    <intent-filter>

    <action android:name="cn.jpush.android.ui.PushActivity" />

    <category android:name="android.intent.category.DEFAULT" />

    <category android:name="Your Package" />

    </intent-filter>

    </activity>

    <!-- Required SDK核心功能-->

    <service

    android:name="cn.jpush.android.service.DownloadService"

    android:enabled="true"

    android:exported="false" >

    </service>

    <!-- Required SDK核心功能-->

    <receiver android:name="cn.jpush.android.service.AlarmReceiver" />

    <!-- Required. For publish channel feature -->

    <!-- JPUSH_CHANNEL 是爲了方便開發者統計APK分發渠道。-->

    <!-- 例如: -->

    <!-- 發到 Google Play 的APK能夠設置爲 google-play; ->

    <!-- 發到其餘市場的 APK 能夠設置爲 xxx-market。 -->

    <!-- 目前這個渠道統計功能的報表還未開放。-->

    <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>

    <!-- Required. AppKey copied from Portal -->

    <meta-data android:name="JPUSH_APPKEY" android:value="Your AppKey"/>

    </application>

    </manifest>

 

這裏須要注意的是:以前已經加過的一些xml信息,這時候要一一對照把這裏面的信息 一條一條添加進去。

注意順序:



 
三、添加代碼

JPush SDK 提供的 API 接口,都主要集中在 cn.jpush.android.api.JPushInterface 類裏。

按照下面的方法來修改:

 
 
四、測試確認

    確認所需的權限都已經添加。若是必須的權限未添加,日誌會提示錯誤。
    確認 AppKey(在Portal上生成的)已經正確的寫入 Androidmanifest.xml 。
    確認在程序啓動時候調用了init(context) 接口
    確認測試手機(或者模擬器)已成功連入網絡
        客戶端調用 init 後不久,若是一切正常,應有登陸成功的日誌信息
    啓動應用程序,在 Portal 上嚮應用程序發送自定義消息或者通知欄提示。詳情請參考管理Portal。
        在幾秒內,客戶端應可收到下發的通知或者正定義消息

若是 SDK 工做正常,則日誌信息會以下圖所示:

如圖所示,客戶端啓動分爲 4 步:

    檢查 metadata 的 appKey 和 channel ,若是不存在,則啓動失敗
    初始化 JPush SDK,檢查 JNI 等庫文件的有效性,若是庫文件無效,則啓動失敗
    檢查 Androidmanifest.xml,若是有 Required 的權限不存在,則啓動失敗
    鏈接服務器登陸,若是存在網絡問題,則登錄失敗,或者前面三步有問題,不會啓動JPush SDK

 
只要測試成功,ok,你能夠去管理Portal,去發送信息了。沒有意外的話,就能收到信息。

固然這個僅僅是簡單的推送消息功能,具體的一些應用,能夠再參考官方的api文檔來本身開發。測試

相關文章
相關標籤/搜索