React native 實(shí)戰(zhàn) -- 極光推送(android)實(shí)踐

安裝

  • RN版本 0.49
npm i jpush-react-native --save
npm i jcore-react-native --save ## jpush-react-native 1.4.2 版本以后需要同時(shí)安裝 

1.配置

  • 執(zhí)行腳本
npm run configureJPush <yourAppKey> <yourModuleName>
//module name 指的是你 Android 項(xiàng)目中的模塊名字(對 iOS 沒有影響,不填寫的話默認(rèn)值為 app欺殿,會影響到查找 AndroidManifest 問題婶肩,
//如果沒找到 AndroidManifest棠赛,則需要手動(dòng)修改
//舉個(gè)例子:
npm run configureJPush d4ee2375846bc30fa51334f5 app
//執(zhí)行完畢再link
react-native link 
  1. 檢查配置項(xiàng)

/android/app/build.gradle 沒有就加上

android {
    defaultConfig {
        applicationId "yourApplicationId" //包名
        ...
        manifestPlaceholders = [
                JPUSH_APPKEY: "yourAppKey", //在此替換你的APPKey
                APP_CHANNEL: "developer-default"    //應(yīng)用渠道號
        ]
    }
}
...
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile project(':jpush-react-native')  // 添加 jpush 依賴
    compile project(':jcore-react-native')  // 添加 jcore 依賴
    compile "com.facebook.react:react-native:+"  
}

android/settings.gradle 沒有就加上

include ':app', ':jpush-react-native', ':jcore-react-native'
project(':jpush-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jpush-react-native/android')
project(':jcore-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jcore-react-native/android')

android/app/src/main/AndroidManifest.xml 下面沒有的就加上

<permission android:name="${applicationId}.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />  //可以把權(quán)限也加上

 <application
        ...
        <!-- Required . Enable it you can get statistics data with channel -->
        <meta-data android:name="JPUSH_CHANNEL" android:value="${APP_CHANNEL}"/>
        <meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}"/>
    </application>

更新 MainActivity.java 文件

import cn.jpush.android.api.JPushInterface; //導(dǎo)入
public class MainActivity extends ReactActivity {
    //方法沒有就全部加上
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        JPushInterface.init(this); //添加到這里
        super.onCreate(savedInstanceState);
    }

    @Override
    protected String getMainComponentName() {
        return "RNTEST";
    }

    @Override
    protected void onPause() {
        super.onPause();
        JPushInterface.onPause(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        JPushInterface.onResume(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}

更新 MainApplication.java 文件

import cn.jpush.reactnativejpush.JPushPackage;  //導(dǎo)入

public class MainApplication extends Application implements ReactApplication {
     // 設(shè)置為 true 將不彈出 toast
     private boolean SHUTDOWN_TOAST = false;
    // 設(shè)置為 true 將不打印 log
    private boolean SHUTDOWN_LOG = false;

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        @Override
        protected boolean getUseDeveloperSupport() {
            return BuildConfig.DEBUG;
        }
 
        @Override
        protected List<ReactPackage> getPackages() {
            return Arrays.<ReactPackage>asList(
                    new MainReactPackage(),
                    new JPushPackage(SHUTDOWN_TOAST, SHUTDOWN_LOG)  //這行沒有就加上
            );
        }
    };
  ···
}

3.使用

import JPushModule from 'jpush-react-native';
 
export default class WelcomePage extends Component {
 
   componentWillMount() {
        //必須先調(diào)用這個(gè)方法
        JPushModule.notifyJSDidLoad((resultCode) => {
            if (resultCode === 0) {
            }
        });
       //這是點(diǎn)擊通知觸發(fā)的事件
        JPushModule.addReceiveNotificationListener((map) => {
        });
    }
}

其它事件自己去官網(wǎng)看

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市跳夭,隨后出現(xiàn)的幾起案子亡笑,更是在濱河造成了極大的恐慌,老刑警劉巖最仑,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異炊甲,居然都是意外死亡泥彤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門卿啡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吟吝,“玉大人,你說我怎么就攤上這事牵囤“只疲” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵揭鳞,是天一觀的道長。 經(jīng)常有香客問我梆奈,道長野崇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任亩钟,我火速辦了婚禮乓梨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘清酥。我一直安慰自己扶镀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布焰轻。 她就那樣靜靜地躺著臭觉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辱志。 梳的紋絲不亂的頭發(fā)上蝠筑,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音揩懒,去河邊找鬼什乙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛已球,可吹牛的內(nèi)容都是我干的臣镣。 我是一名探鬼主播辅愿,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忆某!你這毒婦竟也來了渠缕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤褒繁,失蹤者是張志新(化名)和其女友劉穎亦鳞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棒坏,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡燕差,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坝冕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徒探。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喂窟,靈堂內(nèi)的尸體忽然破棺而出测暗,到底是詐尸還是另有隱情,我是刑警寧澤磨澡,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布碗啄,位于F島的核電站,受9級特大地震影響稳摄,放射性物質(zhì)發(fā)生泄漏稚字。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一厦酬、第九天 我趴在偏房一處隱蔽的房頂上張望胆描。 院中可真熱鬧,春花似錦仗阅、人聲如沸昌讲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽短绸。三九已至,卻和暖如春旋廷,著一層夾襖步出監(jiān)牢的瞬間鸠按,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工饶碘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留目尖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓扎运,卻偏偏與公主長得像瑟曲,于是被迫代替她去往敵國和親饮戳。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容