React Native集成阿里云推送----广播推送

   日期:2020-08-31     浏览:112    评论:0    
核心提示:集成阿里云推送的方式有两种:一:通过maven库达到快速集成的目的,二:通过手动修改配置配置文件的方法,由于手动修改配置文件过程繁琐且极易出现问题,所以强烈建议使用maven库达到快速集成的目的。下面是详细步骤:1.在Project根目录下build.gradle文件中配置maven库URL:maven {url http://maven.aliyun.com/nexus/content/repositories/releases/}2.在android/app/build.gradle文

集成阿里云推送的方式有两种:一:通过maven库达到快速集成的目的,二:通过手动修改配置配置文件的方法,由于手动修改配置文件过程繁琐且极易出现问题,所以强烈建议使用maven库达到快速集成的目的。下面是详细步骤:

1.在Project根目录下build.gradle文件中配置maven库URL:

maven {
url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
}

2.在android/app/build.gradle文件中添加以下依赖:

android {

...

defaultConfig {

applicationId "com.****_rn"

minSdkVersion rootProject.ext.minSdkVersion

targetSdkVersion rootProject.ext.targetSdkVersion

versionCode 1

versionName "1.0"

//以下是新注入的依赖

ndk {

//选择要添加的对应cpu类型的.so库。

abiFilters "armeabi-v7a","x86"

}

 

}

dependencies {

......

//注入阿里云推送SDK

compile 'com.aliyun.ams:alicloud-android-push:3.1.9.1'

......

}

3.appKey, appSecret配置

在AndroidManifest文件中设置appKey,appSecret,文件路径如图所示:

<meta-data android:name="com.alibaba.app.appkey" android:value="30265081"/> <!-- 请填写你自己的- appKey -->
<meta-data android:name="com.alibaba.app.appsecret" android:value="46d7509e703cfb7b47a804c497ca3e66"/> <!-- 请填写你自己的appSecret -->

4.消息接收Receiver配置

将以下push文件复制入图中所示位置,记得修改包名:
链接: https://pan.baidu.com/s/14n84zDtjzWoBe5-Syr9Aqw 密码: svt7

5.将receiver监听器加入到android/app/src/main/AndroidManifest.xml中

<receiver

android:name=".push.MyMessageReceiver"

android:exported="false"> <!-- 为保证receiver安全,建议设置不可导出,如需对其他应用开放可通过android:permission进行限制 -->

<intent-filter>

<action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED" />

</intent-filter>

<intent-filter>

<action android:name="com.alibaba.push2.action.NOTIFICATION_REMOVED" />

</intent-filter>

<intent-filter>

<action android:name="com.alibaba.sdk.android.push.RECEIVE" />

</intent-filter>

</receiver>

6.配置 Proguard文件

这个文件在android studio中容易找到

-keepclasseswithmembernames class ** {

native <methods>;

}

-keepattributes Signature

-keep class sun.misc.Unsafe { *; }

-keep class com.taobao.** {*;}

-keep class com.alibaba.** {*;}

-keep class com.alipay.** {*;}

-keep class com.ut.** {*;}

-keep class com.ta.** {*;}

-keep class anet.**{*;}

-keep class anetwork.**{*;}

-keep class org.android.spdy.**{*;}

-keep class org.android.agoo.**{*;}

-keep class android.os.**{*;}

-keep class org.json.**{*;}

-dontwarn com.taobao.**

-dontwarn com.alibaba.**

-dontwarn com.alipay.**

-dontwarn anet.**

-dontwarn org.android.spdy.**

-dontwarn org.android.agoo.**

-dontwarn anetwork.**

-dontwarn com.ut.**

-dontwarn com.ta.**

7.在应用中注册和启动移动推送

在android/app/src/main/java/com/ysmz_merchant_rn/MainApplication.java中添加注册推送方法,并在onCreate()方法中调用

 @Override

public void onCreate() {

super.onCreate();

SoLoader.init(this,  false);

initializeFlipper(this); // Remove this line if you don't want Flipper enabled

//调用推送方法

initCloudChannel(this);

}


...

 



private void initCloudChannel(Context applicationContext) {

this.createNotificationChannel();

PushServiceFactory.init(applicationContext);

CloudPushService pushService = PushServiceFactory.getCloudPushService();

pushService.register(applicationContext, new CommonCallback() {

@Override

public void onSuccess(String response) {

Log.d(TAG, "init cloudchannel success");

}

@Override

public void onFailed(String errorCode, String errorMessage) {

Log.d(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);

}

 

 

});

 

// MiPushRegister.register(applicationContext, "XIAOMI_ID", "XIAOMI_KEY"); // 初始化小米辅助推送

// HuaWeiRegister.register(this); // 接入华为辅助推送

// VivoRegister.register(applicationContext);

// OppoRegister.register(applicationContext, "OPPO_KEY", "OPPO_SECRET");

// MeizuRegister.register(applicationContext, "MEIZU_ID", "MEIZU_KEY");

}


private void createNotificationChannel() {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

// 通知渠道的id

String id = "1";

// 用户可以看到的通知渠道的名字.

CharSequence name = "notification channel";

// 用户可以看到的通知渠道的描述

String description = "notification description";

int importance = NotificationManager.IMPORTANCE_HIGH;

NotificationChannel mChannel = new NotificationChannel(id, name, importance);

// 配置通知渠道的属性

mChannel.setDescription(description);

// 设置通知出现时的闪灯(如果 android 设备支持的话)

mChannel.enableLights(true);

mChannel.setLightColor(Color.RED);

// 设置通知出现时的震动(如果 android 设备支持的话)

mChannel.enableVibration(true);

mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});

//最后在notificationmanager中创建该通知渠道

mNotificationManager.createNotificationChannel(mChannel);

 

// context.startForegroundService(new Intent(context, ServedService.class));

}

// }else {

// context.startService(new Intent(context, ServedService.class));

// }

}

至此,移动推送配置已经完成,接着需要在android studio中build一下文件,系统会自动导入移动推送所需的依赖包,没有错误后在阿里云移动推送控制台中推送通知测试。下面两个链接是阿里云官网开发文档,可以自行参考。
Android SDK 3.0配置:https://help.aliyun.com/document_detail/51056.html?spm=a2c4g.11186623.2.29.10895241WeUcI0

Android SDK 常见错误:https://help.aliyun.com/knowledge_list/39996.html?spm=a2c4g.11186623.6.611.5b7552e749NL7p

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服