腾讯信鸽推送配置

具体步骤来自文档,更多参考文档(文档地址

导入依赖

build.gradle文件中添加依赖

android {
        ......
        defaultConfig {

            //信鸽官网上注册的包名.注意application ID 和当前的应用包名以及 信鸽官网上注册应用的包名必须一致。
            applicationId "你的包名" 
            ......

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

            manifestPlaceholders = [

                XG_ACCESS_ID:"注册应用的accessid",
                XG_ACCESS_KEY : "注册应用的accesskey",
            ]
            ......
        }
        ......
    }

    dependencies {
        ......   

    //信鸽普通版本jar,不包含厂商通道
    implementation  'com.tencent.xinge:xinge:4.0.5-release'
    //implementation'com.tencent.xinge:xinge:4.3.2-beta'
    //jg包
    implementation'com.tencent.jg:jg:1.1'
    //wup包
    implementation 'com.tencent.wup:wup:1.0.0.E-release'
    //mid包,minSdkVersion 14
    implementation 'com.tencent.mid:mid:4.0.7-Release'

    }

注意:

  • 如果在添加以上 abiFilter 配置之后 Android Studio 出现以下提示:

NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.

则在 Project 根目录的 gradle.properties 文件中添加:

android.useDeprecatedNdk=true

  • 如需监听消息请参考XGBaseReceiver接口或者是 demo 的 MessageReceiver 类。自行继承XGBaseReceiver并且在配置文件中配置如下内容:
<receiver android:name="完整的类名如:com.qq.xgdemo.receiver.MessageReceiver"
android:exported="true" >
<intent-filter>
<!-- 接收消息透传 -->
<action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" />
<!-- 监听注册、反注册、设置/删除标签、通知被点击等处理结果 -->
<action android:name="com.tencent.android.tpush.action.FEEDBACK" />
</intent-filter>
</receiver>
  • 4.X以上版本已经兼容了 Android P,默认支持HTTPS,如果要使用HTTP,需要自行配置(点击查看配置方法

代码混淆

#XG
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep class com.tencent.android.tpush.** {* ;}
-keep class com.tencent.mid.** {* ;}
-keep class com.qq.taf.jce.** {*;}
-keep class com.tencent.bigdata.** {* ;}

#XG华为通道
-ignorewarning
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep class com.huawei.android.hms.agent.**{*;}

#XG小米通道
-keep class com.xiaomi.**{*;}
-keep public class * extends com.xiaomi.mipush.sdk.PushMessageReceiver

#XG魅族通道
-dontwarn com.meizu.cloud.pushsdk.**
-keep class com.meizu.cloud.pushsdk.**{*;}

添加必要的权限

AndroidMani.xml文件中增加信鸽推送必要权限,来自sdk自带demo,部分权限需要动态申请

<!-- 【必须】 信鸽SDK所需权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <!-- 【常用】 信鸽SDK所需权限 -->
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 【可选】 信鸽SDK所需权限 -->
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.BLUETOOTH" />

注册与反注册

具体参考api绑定账号注册

    /*
    为信鸽反注册与注册账号
     */
    private void initPushRegister() {
        XGPushManager.delAccount(mContext.getApplicationContext(), account, new XGIOperateCallback() {
            @Override
            public void onSuccess(Object o, int i) {
                Log.d("TPush", "注销成功,设备token为:" + o);
            }

            @Override
            public void onFail(Object o, int i, String s) {
                Log.d("TPush", "注销失败,错误码:" + i + ",错误信息:" + s);
            }
        });
        XGPushManager.bindAccount(mContext.getApplicationContext(), account, new XGIOperateCallback() {
            @Override
            public void onSuccess(Object o, int i) {
                Log.d("TPush", "注册成功,设备token为:" + o);
            }

            @Override
            public void onFail(Object o, int i, String s) {
                Log.d("TPush", "注册失败,错误码:" + i + ",错误信息:" + s);
            }
        });

    }

测试

集成sdk后,不需要额外的设置即可接受通知/消息

方法1,通过信鸽控制台,可以对绑定设备/账号推送通知/消息

方法2,后台集成对应SDK,发送消息/通知

点击通知后跳转活动

在信鸽推送控制台操作,可以发现通知中可以指定点击后续操作

默认点击通知会打开应用入口活动,可以打开指定的界面,打开指定的资源,或者自定义的内容

  1. 由于一般app带有登录界面,我们不希望应用后台运行时,重新运行登录入口,这时就需要在入口界面截断并判断是否需要重启
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_xgtransfer);

//        获取活动启动时的XGPushClickedResult
        XGPushClickedResult clickedResult = XGPushManager.onActivityStarted(this);
//        从信鸽推送通知进入
        if (clickedResult != null) {
//        如果简单的不希望通过信鸽通知重启入口活动,就直接finish()
//        如果希望判断主程序是否在后台运行,需要自己实现一个活动管理类,通过判断主活动是否存活来决定是否启动入口活动
           //            判断主程序是否存活。是,跳转对应活动;否,启动splash登录
            if (ActivityManager.getActivity(MainActivity.class) != null) {
                startTargetActivity(intentString.getIntent_action());
                finish();
            } else {
                startSplashActivity();
            }
//            由于登录延迟,所以需要延时关闭本活动
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    finish();
                }
            },2000);
        }
        Log.e(TAG, "onCreate: XGTransferActivity not ending currently");
        }

ActivityMananger可以参考这里活动管理器小结BaseActivityManager

如果有各种通知,需要跳转不同的活动,这里建议按照sdk中推荐的第一种方法(1.3. 消息点击事件以及跳转页面方法

实现方法与上方的splash类似,不过统一后台所有通知点击打开指定的活动,在一个活动里处理跳转的路由

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
包含客户端和服务端 代码 亿级并发,秒级触达 稳定的大规模接入集群,同时与数亿移动智能终端保持稳定的长连接,支持十亿级并发 秒级触达用户,每天可发百亿级的通知/消息 最省电省流量方案 智能识别网络环境,根据不同环境定制通讯协议,以最低消耗维护长连接,做到极致省电省流量 通知及消息高度压缩,节省流量的同时加密保证安全性 丰富标签,精准定向 特定标签人群,团队测试用户,全量用户,单个用户等多种范围选择 及时稳定地将信息达到最相关的用户,形成用户粘性,避免骚扰 开放API接口,灵活自定义 开放能力,提供多种语言API ,包括Java/PHP/Python/Node.js,业务自由集成 可视效果,实时监控 实时监控通知/消息的抵达用户量,点击转化量,点击转化率,效果一目了然 使用方法 登录后,创建应用,获取应用的唯一识别码AccessKey和密钥SecretKey; 下载对应平台的SDK,并参考开发文档完成SDK集成; 通过API调用或Web业务端方便快速地完成测试和实际发,并实时查看效果。 使用场景 通知,定义为Android和iOS开发者指南中的Notifidoveion。服务器定向将信息实时达手机,通过建立一条手机与服务器的连接链路,当有消息需要发到手机时,通过此链路发即可。通过一条用户可见的信息,引导用户进行有目的性的操作。通常用于产品信息知会、新闻和个性化消息等场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值