友盟小米收不到推送消息_友盟分享和推送看这一篇就够了-Go语言中文社区

本文详尽总结了友盟分享与推送的集成步骤,包括微信、QQ等平台的分享接口封装,以及第三方登录授权获取用户信息的流程。此外,还提供了自定义通知栏的实现,以及针对小米、华为等设备的离线通道处理。文章还强调了遇到问题时如何利用日志和官方文档进行排查,并分享了一些常见问题的解决方案。
摘要由CSDN通过智能技术生成

前段时间写了一篇关于友盟推送的文章,从阅读量来看,大家在这方面踩了很多坑,所以我觉得有必要来个全面的总结,给大家更好的过坑意见;

先从分享开始说吧

第一步集成SDK:官方文档说的很详细了,集成大家就看文档吧,我就总结一下要注意的地方:

微信,qq,短信等友盟的api都有了,不过为了方便自己调用,可以自定义一个接口:

/**

* Created by Administrator on 2018/1/5 0005.

* 分享回调

*/

public interface ShareHandler {

void shareSuccess();

void shareFailed(String msg);

void shareCancel();

}然后自定义一个分享的工具类

public class ShareUtils {

private Activity mContext;

public ShareUtils(Activity context) {

mContext = context;

}

private ShareHandler mShareHandler;

/**为方便参数的传递,把需要的参数封装为一个shareBean

* @param shareBean 分享参数类

*/

public void beginShare(ShareBean shareBean, ShareHandler shareHandler) {

mShareHandler = shareHandler;

UMWeb shareUrl = new UMWeb(shareBean.getUrl());

shareUrl.setTitle(shareBean.getTitle());

shareUrl.setDescription(shareBean.getDesc());

shareUrl.setThumb(new UMImage(mContext, R.mipmap.ic_launcher));

new ShareAction(mContext)

.withText(shareBean.getTitle())

.withMedia(shareUrl)

.setPlatform(shareBean.getType())

.setCallback(shareListener)

.share();

}

public UMShareListener shareListener = new UMShareListener() {

/**

* @descrption 分享开始的回调

* @param platform 平台类型

*/

@Override

public void onStart(SHARE_MEDIA platform) {

// ToastUtils.showShortToast("share start");

}

/**

* @descrption 分享成功的回调

* @param platform 平台类型

*/

@Override

public void onResult(SHARE_MEDIA platform) {

// ToastUtils.showShortToast("share success");

if (mShareHandler != null)

mShareHandler.shareSuccess();

}

/**

* @descrption 分享失败的回调

* @param platform 平台类型

* @param t 错误原因

*/

@Override

public void onError(SHARE_MEDIA platform, Throwable t) {

// ToastUtils.showShortToast("share failed" + t.getMessage());

if (mShareHandler != null)

mShareHandler.shareFailed(t.getMessage());

}

/**

* @descrption 分享取消的回调

* @param platform 平台类型

*/

@Override

public void onCancel(SHARE_MEDIA platform) {

// ToastUtils.showShortToast("share calcel");

if (mShareHandler != null)

mShareHandler.shareCancel();

}

};

}

shareBean也就几个参数

//分享 kotlin格式 不会kotlin的吧参数copy到自己的实体类即可

data class ShareBean(

val type: SHARE_MEDIA, //QQ

val url: String, //分享的Url

val title: String, //标题

val thumb: String, //图片地址

val desc: String //描述文字

)工具类写好了然后就是调用

private void share(SHARE_MEDIA platform) {

ShareUtils shareUtils = new ShareUtils(InvitingFriendActivity.this);

//这里的参数除了都可以从服务器获取,然后赋值就行

ShareBean shareBean = new ShareBean(platform, shareUrl, shareTitle, shareIcon, "");

shareUtils.beginShare(shareBean, new ShareHandler() {

@Override

public void shareSuccess() {

// ToastUtils.showShortToast("分享成功");

}

@Override

public void shareFailed(String msg) {

// ToastUtils.showShortToast("分享失败:" + msg);

}

@Override

public void shareCancel() {

// ToastUtils.showShortToast("分享取消");

}

});

}

/**因为qq和qq空间6.0以后有权限管理校验,这一步是校验,可以直接调用这个方法发起分享

* @param paltform pingtai

*/

public void checkPermissionToshare(final SHARE_MEDIA paltform) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

//判断该应用是否有写SD卡权限,如果没有再去申请

if (ContextCompat.checkSelfPermission(InvitingFriendActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

RxPermissions rxPermissions = new RxPermissions(this);

rxPermissions

.request(Manifest.permission.WRITE_EXTERNAL_STORAGE)

.subscribe(new Consumer() {

@Override

public void accept(Boolean aBoolean) throws Exception {

if (aBoolean) {

share(paltform);

} else {

ToastUtils.showShortToast("分享取消");

}

}

});

} else {

share(paltform);

}

}

}

调用示例

checkPermissionToshare(SHARE_MEDIA.QQ);下面是通过gradle配置,不打包release

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值