第三方平台个推SDK的使用

来源:互联网 发布:js登录注册功能 编辑:程序博客网 时间:2024/05/16 10:11

前言 : 即使会使普通人昏倒的伤,我也绝对不能倒下!!!即使会使普通人死掉的伤,我也不可以死…如果我是普通人,就绝对赢不了“鹰眼”,所以我不可以是普通人!!

第三方平台个推SDK的使用

现在我们的APP都会使用到地方的平台,不外乎几个原因:1.第三方平台的功能强大,且易使用。2.能迅速的集成到我们的项目中,使用起来高效简单。

1.将个推SDK集成到自己的项目

集成到自己的项目中,分为eclipse和AS两种模式,我写的demo使用的AS。而AS又分为Maven导入和手动导入两种方式。比较简单,照着官网步骤来就行了。

个推官网集成地址:http://docs.getui.com/mobile/android/androidstudio/

2.消息推送方式

个推有两种基本的推送方式1.消息通知,2.透传消息。

今天我只讲透传消息,因为在项目中透传消息才是我们首选的推送方式。

这里写图片描述

3.自定义广播接收透传消息并解析

自定义广播

1.接收透传消息

“`
Bundle bundle = intent.getExtras();

    switch (bundle.getInt(PushConsts.CMD_ACTION)) {        case PushConsts.GET_MSG_DATA:            // 获取透传数据            byte[] payload = bundle.getByteArray("payload");            if (payload != null) {                String data = new String(payload);                Map<String, String> content = getData(data);                String contentTitle = content.get("contentTitle");                String contentText = content.get("contentText");                String contentUrl = content.get("contentUrl");                Toast.makeText(context, contentUrl, Toast.LENGTH_SHORT).show();                showNotification(contentTitle, contentText, contentUrl);            }            break;

2.解析透传消息
我这里的消息格式是content#content#content ,可以自定义各种格式,只要能解析出来就可以。还可以是json数据格式

private Map<String, String> getData(String data) {    Map<String, String> mapData = new HashMap<String, String>();    String[] str = data.split("#");    mapData.put("contentTitle", str[0]);    mapData.put("contentText", str[1]);    mapData.put("contentUrl", str[2]);    return mapData;}

3.通过Notifaction显示消息并且点击将消息传递给MainActivity

private void showNotification(String contentTitle, String contentText, String contentUrl) {
Intent intent = new Intent(mContent, MainActivity.class);
intent.putExtra(“contentUrl”, contentUrl);
PendingIntent pendingIntent2 = PendingIntent.getActivity(mContent, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);

    // 通过Notification.Builder来创建通知,注意API Level    // API11之后才支持    Notification notify2 = new Notification.Builder(mContent)            .setSmallIcon(R.mipmap.ic_launcher) // 设置状态栏中的小图片,尺寸一般建议在24×24,这个图片同样也是在下拉状态栏中所显示,如果在那里需要更换更大的图片,可以使用setLargeIcon(Bitmap            // icon)            .setTicker("您有新消息,请注意查收!")// 设置在status            // bar上显示的提示文字            .setContentTitle(contentTitle)// 设置在下拉status            // bar后Activity,本例子中的NotififyMessage的TextView中显示的标题            .setContentText(contentText)// TextView中显示的详细内容            .setContentIntent(pendingIntent2) // 关联PendingIntent            .getNotification(); // 需要注意build()是在API level    // 16及之后增加的,在API11中可以使用getNotificatin()来代替    notify2.flags |= Notification.FLAG_AUTO_CANCEL;    manager.notify(NOTIFICATION_FLAG, notify2);}

4.在MainActivity接收数据,数据是url,所以使用WebView解析网址显示

//获取Notifacation传递过来的contentUrl    contentUrl = getIntent().getStringExtra("contentUrl");    Toast.makeText(this, contentUrl, Toast.LENGTH_SHORT).show();    //初始化个推    PushManager.getInstance().initialize(this.getApplicationContext());    initView();    mWebView.getSettings().setJavaScriptEnabled(true);    mWebView.requestFocus();    mWebView.loadUrl(contentUrl);    mWebView.setWebViewClient(new WebViewClient() {        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            view.loadUrl(url);            return true;        }    });

除了以上透传消息外,还有使用一种特定推送的方法使用的比较多,别名推送。
别名可以使我们的手机号,现在的APP大多数都是手机号注册。

        public boolean bindAlias(this,"你的手机号")

讲解的比较简单,但是第三方的SDK的使用本身就是这么简单。如果还需要其他的功能,可以多参考官方DEMO。

源码 下载

1 0