欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-02 20:09:37
集成阿里云推送的方式有两种:一:通过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/'
}

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

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,文件路径如图所示:
React Native集成阿里云推送----广播推送

<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
React Native集成阿里云推送----广播推送

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>

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

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.**

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

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

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

 @Override

public void onCreate() {

super.onCreate();

SoLoader.init(this, /* native exopackage */ false);

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

//调用推送方法

initCloudChannel(this);

}


...

 

/**

* 初始化云推送通道

* @param applicationContext

*/

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

本文地址:https://blog.csdn.net/a253399414/article/details/108308874

相关标签: android