1. 程式人生 > >極光推送整合總結——(筆記)

極光推送整合總結——(筆記)

1.從極光官網建立自己的專案(app)
輸入的名字是可以很隨意的,頭像的建立也是可有可無2.然後就是建立成功---------------------------
3.向下滑找到推送設定 接下來就是完善推送設定
點選完善傳送設定4.以Android的推送為例:
在這裡插入圖片描述5.接下來建立自己的module 然後開啟build.gradle
dakia 6.拿到你的applicationid(也就是第四部的應用包名)
----------複製上去後在極光服務端的工作基本的算是完成了
到這裡在服務端的設定基本就算是完成了5.然後就是下載官方demo
在這裡插入圖片描述6.將官方demo下載下來後解壓開啟
—順帶開啟官方文件(整合指南)
官方整合指南
-----複製 libs/jcore-android-1.x.x.jar 到工程 libs/ 目錄下。
-----複製 libs/jpush-android-3.x.x.jar 到工程 libs/ 目錄下。
-----複製 libs/(cpu-type)/libjcore1xy.so 到你的工程中存放對應 cpu 型別的目錄下。
-----複製 res/ 中 drawable-hdpi, layout, values 資料夾中的資原始檔到你的工程中 res/ 對應同名的目錄下。
+++++++++++++++++將layout檔案也放進去++++++++++++++++++
在這裡插入圖片描述

在這裡插入圖片描述

說明 1:若沒有 res/drawable-xxxx/jpush_notification_icon 這個資源預設使用應用圖示作為通知 icon,在 5.0 以上系統將應用圖示作為 statusbar icon 可能顯示不正常,使用者可定義沒有陰影和漸變色的 icon 替換這個檔案,檔名不要變。

說明 2:使用 android studio 的開發者,如果使用 jniLibs 資料夾匯入 so 檔案,則僅需將所有 cpu 型別的資料夾拷進去;如果將 so 檔案新增在 module的libs 資料夾下,注意在 module 的 gradle 配置中新增一下

7.然後再在自己的module中開啟build.gradle
把下邊的一句話複製上去

    android {
        sourceSets {//寫在Android目錄下
            main {
                jniLibs.srcDirs = ['libs']
            }
        }
    }

8.配置 AndroidManifest.xml

-----根據 SDK 壓縮包裡的 AndroidManifest.xml 樣例檔案,來配置應用程式專案的 AndroidManifest.xml 。

-----主要步驟為:

-----複製備註為 "Required" 的部分
-----將標註為“您應用的包名”的部分,替換為當前應用程式的包名
-----將標註為“您應用的 Appkey” 的部分,替換為在 Portal 上建立該應用後應用資訊中的 Appkey,例如:9fed5bcb7b9b87413678c407

9.接下來就是我們最愛的CV了

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.liu.get.jpush"//此處:在極光官網註冊的包名(實際開發中吧所有的com.liu.get.jpush(因為屬於我個人的app)替換成你自己的包名)
    android:versionCode="317"//可有可無
    android:versionName="3.1.7">//可有可無

    <!-- Required -->
    <permission
        android:name="(請替換包名).permission.JPUSH_MESSAGE"
        android:protectionLevel="signature" />

    <!-- Required  一些系統要求的許可權,如訪問網路等-->
    <uses-permission android:name="(個人的包名).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.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.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <!-- Optional for location -->
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用於開啟 debug 版本的應用在6.0 系統上 層疊視窗許可權 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <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" />
    <uses-permission android:name="android.permission.GET_TASKS" />


    <application
        android:name=".MyApp_"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- Rich push 核心功能 since 2.0.6-->
        <activity
            android:name="cn.jpush.android.ui.PopWinActivity"
            android:theme="@style/MyDialogStyle"
            android:exported="false">
        </activity>
        <!-- Required SDK核心功能-->
        <activity
            android:name="cn.jpush.android.ui.PushActivity"
            android:configChanges="orientation|keyboardHidden"
            android:theme="@android:style/Theme.NoTitleBar"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.ui.PushActivity" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="(請替換包名)" />
            </intent-filter>
        </activity>
        <!-- Required SDK 核心功能-->
        <!-- 可配置android:process引數將PushService放在其他程序中 -->
        <service
            android:name="cn.jpush.android.service.PushService"
            android:process=":pushcore"
            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>
        <!-- since 3.0.9 Required SDK 核心功能-->
        <provider
            android:authorities="(請替換包名).DataProvider"
            android:name="cn.jpush.android.service.DataProvider"
            android:process=":pushcore"
            android:exported="false"
            />
        <!-- since 1.8.0 option 可選項。用於同一裝置中不同應用的JPush服務相互拉起的功能。 -->
        <!-- 若不啟用該功能可刪除該元件,將不拉起其他應用也不能被其他應用拉起 -->
        <service
            android:name="cn.jpush.android.service.DaemonService"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.DaemonService" />
                <category android:name="(請替換包名)" />
            </intent-filter>

        </service>
        <!-- since 3.1.0 Required SDK 核心功能-->
        <provider
            android:authorities="(請替換包名).DownloadProvider"
            android:name="cn.jpush.android.service.DownloadProvider"
            android:exported="true"
            />
        <!-- Required SDK核心功能-->
        <receiver
            android:name="cn.jpush.android.service.PushReceiver"
            android:enabled="true"
            android:exported="false">
            <intent-filter android:priority="1000">
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  顯示通知欄 -->
                <category android:name="(請替換包名)" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
            <!-- Optional -->
            <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核心功能-->
        <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false"/>

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

    </application>

</manifest>

到這裡專案的整合已經算是完成了接下來就是Run一下自己的專案
當自己的專案執行生效(無報錯)後去極光官網
在這裡插入圖片描述
在這裡插入圖片描述在這裡插入圖片描述選中安卓
在這裡插入圖片描述立即傳送,客戶端即可接收到推送