前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯信鸽集成

腾讯信鸽集成

作者头像
从今若
发布2019-09-19 14:56:18
5.8K3
发布2019-09-19 14:56:18
举报
文章被收录于专栏:家劲家劲

背景

现在移动推送很多大厂都在做,腾讯信鸽跟个推、极光、友盟比算是比较晚的一个了。 但这并不妨碍我用它。

服务端

这边服务端用的C#,有两种方式集成腾讯信鸽: 1.引用官方编译好的XingeApp.dll 推荐,相当简单方便,基本的Api都有。 ps:老版本的NewtonsoftJson(低于10.0.0)可能会报错。 2.调用Restful Api 不谈,稍微麻烦了些。

Android端

推荐使用Android Studio一键引用。就很方便了。(基于AS 3.0.1) build.gradle

代码语言:javascript
复制
apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        
        ...

        ndk {
            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
        }
        manifestPlaceholders = [
                XG_ACCESS_ID:"your id",
                XG_ACCESS_KEY : "your key",
        ]
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    
    ...

    implementation 'com.tencent.xinge:xinge:3.2.2-release'
    implementation 'com.tencent.wup:wup:1.0.0.E-release'
    implementation 'com.tencent.mid:mid:4.0.6-release'
}

注册清单Manifest.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kuaijiajin.julynovel">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:name=".application.MyApplication"
        android:theme="@style/AppTheme">
        <receiver android:name=".receiver.XGReceiver"
            android:enabled="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>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

在业务界面或者Application处注册

代码语言:javascript
复制
public class MyApplication extends Application {
    @Override
    public void onCreate(){
        super.onCreate();
        XGPushManager.enableService(this, true);
        XGPushManager.registerPush(this, new XGIOperateCallback() {
            @Override
            public void onSuccess(Object o, int i) {
                LogUtils.dTag("注册成功,设备token为:", o);
            }

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

继承receiver实现点击跳转

代码语言:javascript
复制
public class XGReceiver extends XGPushBaseReceiver {

    @Override
    public void onTextMessage(Context context,XGPushTextMessage message){

    }

    @Override
    public void onRegisterResult(Context context,int errorCode,XGPushRegisterResult registerMessage){

    }

    @Override
    public void onUnregisterResult(Context context, int errorCode){

    }

    @Override
    public void onSetTagResult(Context context,int errorCode,String tagName){

    }

    @Override
    public void onDeleteTagResult(Context context, int errorCode,String tagName){

    }

    @Override
    public void onNotifactionShowedResult(Context context, XGPushShowedResult notifiShowedRlt){

    }

    @Override
    public void onNotifactionClickedResult(Context context, XGPushClickedResult message){
        if(ActivityUtils.isActivityExists("com.kuaijiajin.julynovel", MainActivity.class.getName())){
            ActivityUtils.finishToActivity(MainActivity.class, false);
            MainActivity activity = (MainActivity) ActivityUtils.getActivityList().get(0);
            if(activity.mHandler != null){
                Message msg = new Message();
                Bundle bundle = new Bundle();
                bundle.putString("content", message.getContent());
                bundle.putString("title", message.getTitle());
                msg.what = 1;
                msg.setData(bundle);
                activity.mHandler.sendMessage(msg);
            }

        }else{
            Intent intent = new Intent(context, MainActivity.class);
            context.startActivity(intent);
        }

    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 服务端
  • Android端
相关产品与服务
移动推送
移动推送(Tencent Push Notification Service)为应用提供合法合规、消息通道稳定、消息高效秒达、全球服务覆盖的消息推送服务,已稳定服务腾讯游戏、腾讯视频等超高日活应用;支持 App 推送、应用内消息、智能短信等多种消息类型,有效提升用户活跃度。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档