极光推送快速集成

极光推送快速集成

导读:快速集成只需5步即可完成,官方文档中的jcenter 自动集成步骤,但是看文档要花时间,以后遇到之间看这里就可以了,方便提高效率。

第一步 配置
module中Buile.Gradle的defaultconfig配置

ndk {


            //选择要添加的对应cpu类型的.so库。
            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
            // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
        }

        manifestPlaceholders = [
            JPUSH_PKGNAME : applicationId,
            JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.
            JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
        ]

第二步 添加依赖
Build.gradle的dependencies添加依赖

dependencies {
    compile 'cn.jiguang.sdk:jpush:3.0.9'  // 此处以JPush 3.0.9 版本为例。
    compile 'cn.jiguang.sdk:jcore:1.1.7'  // 此处以JCore 1.1.7 版本为例。
}

第三步 初始化SDK
application中初始化SDK,记得一定在AndroidMainfest.xml配置application的name属性

public class ExampleApplication extends Application {
@Override
    public void onCreate() {
        super.onCreate();
        JPushInterface.setDebugMode(true);
        JPushInterface.init(this);
    }
}

第四步 创建广播接收消息
创建Receiver广播接收消息(复制极光推送demo里的MyReceiver)
创建Receiver里部分要改的代码

 else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
                Log.d(TAG, "[MyReceiver] 用户点击打开了通知");

                String data = printBundle(bundle);
                Intent i = new Intent();
                if(data != null){
                    if(data.contains("adddepedency")){
                        i.setClass(context, ApplyMessageActivity.class);
                    }else if(data.contains("message")){
                        i.setClass(context, YYMMessageAtivity.class);
                    }
                }else{
                    i.setClass(context, YYMMessageAtivity.class);
                }
                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
                context.startActivity(i);

            }
// 打印所有的 intent extra 数据
    private static String printBundle(Bundle bundle) {
        StringBuilder sb = new StringBuilder();
        String yymType = "";
        for (String key : bundle.keySet()) {

            if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {
                sb.append("\nkey:" + key + ", value:" + bundle.getInt(key));
            }else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){
                sb.append("\nkey:" + key + ", value:" + bundle.getBoolean(key));
            } else if (key.equals(JPushInterface.EXTRA_EXTRA)) {
                if (TextUtils.isEmpty(bundle.getString(JPushInterface.EXTRA_EXTRA))) {
                    Log.i(TAG, "This message has no Extra data");
                    continue;
                }

                try {
                    JSONObject json = new JSONObject(bundle.getString(JPushInterface.EXTRA_EXTRA));
                    yymType = json.toString();
                    Iterator<String> it =  json.keys();

                    while (it.hasNext()) {
                        String myKey = it.next();
                        sb.append("\nkey:" + key + ", value: [" +
                                myKey + " - " +json.optString(myKey) + "]");
                    }
                } catch (JSONException e) {
                    Log.e(TAG, "Get message extra JSON error!");
                }

            } else {
                sb.append("\nkey:" + key + ", value:" + bundle.getString(key));
            }
        }
        Log.e("===sll=Jpush",sb.toString()) ;
        return yymType;
    }

第五步 配置广播
AndroidManifest.xml配置自定义的广播

        <receiver
            android:name=".receiver.MyReceiver"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!-- Required  用户注册SDK的intent -->
                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!-- Required  用户接收SDK消息的intent -->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!-- Required  用户接收SDK通知栏信息的intent -->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!-- Required  用户打开自定义通知栏的intent -->
                <action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" /> <!-- Optional 用户接受Rich Push Javascript 回调函数的intent -->
                <action android:name="cn.jpush.android.intent.CONNECTION" /> <!-- 接收网络变化 连接/断开 since 1.6.3 -->
                <category android:name="com.telehot.yym" />
            </intent-filter>
        </receiver>

总结
1.完成以上五步就可以测试了,特别强调别忘了打开手机应用通知权限。
2.后端需要设置别名

//添加别名
        String code = aCache.getAsString("userCode");
        JPushInterface.setAlias(this, 0, code);

//退出登录删除别名  
        JPushInterface.deleteAlias(this, 0);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Spring Boot集成极光推送的步骤: 1. 在pom.xml文件添加极光推送的依赖: ```xml <dependency> <groupId>cn.jiguang</groupId> <artifactId>jpush-spring-boot-starter</artifactId> <version>3.4.0</version> </dependency> ``` 2. 在application.yml或application.properties文件配置极光推送的相关信息: ```yaml jpush: app-key: f54*******************92 master-secret: d6*****************055 production: true ``` 请注意将上述代码的app-key和master-secret替换为你自己的极光推送的AppKey和AppSecret。 3. 创建一个推送服务类,用于发送推送消息: ```java import cn.jpush.api.JPushClient; import cn.jpush.api.push.PushResult; import cn.jpush.api.push.model.Message; import cn.jpush.api.push.model.Platform; import cn.jpush.api.push.model.PushPayload; import cn.jpush.api.push.model.audience.Audience; import cn.jpush.api.push.model.notification.Notification; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Service public class JPushService { @Value("${jpush.app-key}") private String appKey; @Value("${jpush.master-secret}") private String masterSecret; @Value("${jpush.production}") private boolean production; public void sendPush(String message) { JPushClient jpushClient = new JPushClient(masterSecret, appKey); PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.all()) .setAudience(Audience.all()) .setMessage(Message.content(message)) .build(); try { PushResult result = jpushClient.sendPush(payload); System.out.println("推送结果:" + result); } catch (Exception e) { e.printStackTrace(); } } } ``` 4. 在需要发送推送消息的地方调用推送服务类的sendPush方法: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class PushController { @Autowired private JPushService jPushService; @GetMapping("/push") public String pushMessage() { jPushService.sendPush("这是一条测试推送消息"); return "推送成功"; } } ``` 以上代码演示了如何在Spring Boot集成极光推送,并发送一条推送消息。你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值