社会化分享 By友盟

这两天项目需要使用社会化分享(实际上考虑的半天发现只有微信分享有市场,但是害怕项目经理再临时出需求,还是采用第三方的平台吧),一开始就直接采用了shareSDK做社会化分享,很多人都推荐这个;不过ShareSDK也确实在这块干了很长时间,各种配置也都非常简洁,官方文档写的很详细。
但是,使用过程中,还是出现了各种问题。
1、配置的地方太多,导致有时候发现配置出错找不到地方修改
2、jar包太大了
3、最重要的,分享结果一直没有回调,我跟他们的客服沟通了好久,奈何这个客服什么都不懂,根本不明白我想问的是什么,就一直发一些官方通用的东西,所以我一怒之下放弃了

后来,偶然间想起来,友盟也推出了这个东西,就抱着试一试的心态试试看了

打开友盟的分享,发现文档写的是不错挺详细,但是结构是真心的乱,而且demo给的也一般,但是用起来还是挺方便的,配置起来也比shareSDK简单了不少,但是中间还是遇到了不少问题,官方没有给出解决方案,在此记录一下吧

首先,注册在友盟上新创建一个android应用,得到key值

然后,去官方文档下载SDK,因为我用的是android Studio,所以我新建了一个module去集成这个东西
具体怎么新建,推荐这个博客上面写的是蛮详细的

接下来就开始真正的内容部分了(我只用了微信)

1、在Application中加上下面一行内容换成自己在微信上申请的值(这一步只要细心肯定是没错的)

PlatformConfig.setWeixin("wx0000000000000", "45434536453543543481233");

2、把友盟中的wxapi包,复制到自己项目的包名下面(根目录),在AndroidMamifest中加上下面代码
还有权限,自己上官方查

        <activity
                android:name="com.umeng.socialize.editorpage.ShareActivity"
                android:theme="@style/Theme.UMDefault"
                android:excludeFromRecents="true"/>
        <meta-data android:value="13584368433814364" android:name="UMENG_APPKEY"></meta-data>
        <!--微信分享回调-->
        <activity
                android:name=".wxapi.WXEntryActivity"
                android:theme="@android:style/Theme.Translucent.NoTitleBar"
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:exported="true"
                android:screenOrientation="portrait" />

UMENG_APPKEY换成自己申请的值,其他不用变
3、在你分享的Activity下面的方法中加上下面一行

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }

4、因为官方的一键分享做的一般,所以我使用了自定义

new ShareAction(mActivity)
                        .setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE)
                        .setCallback(mShareListener)
                        .withTitle(title)
                        .withText(text)
                        .withTargetUrl("http://www.baidu.com")
                        .withMedia(new UMImage(mActivity, 图片路径url))
                        .share();
                dismiss();

setPlatform()方法中的值,换成分享的平台SHARE_MEDIA下面自己找
setCallback是回调方法,下面就可以

UMShareListener mShareListener = new UMShareListener() {
        @Override
        public void onResult(SHARE_MEDIA platform) {
            ToastUtil.showShortMessage("分享成功");
        }

        @Override
        public void onError(SHARE_MEDIA platform, Throwable t) {
            ToastUtil.showShortMessage("分享失败");
        }

        @Override
        public void onCancel(SHARE_MEDIA platform) {
            ToastUtil.showShortMessage("取消分享");
        }
    };

withTitle中设置后貌似并没有用,但是还是要设置
withText这个是关键的,因为我要分享的是webpage界面,所以这里绝对不能为null后者“”,否则就会变成图片分享,这个问题困扰我了两个小时
withTargetUrl这个是点击跳转的网址,也不能为null或者“”
withMedia中间是分享的格式类型里面有四种方式image,表情,music,video四种,webpage是包含在image下面,想变成图片分享看上面两行就知道了
share是分享的方法

这些弄完就完成了一大半,最后因为申请微信的md5值用的是签名打包后的,但是debug中的签名跟正式包是不一样的,所以在android studio中还要配置下面几行

    signingConfigs {
        debug {
            storeFile file("E:\\自己的签名路径")
            storePassword "密码"
            keyAlias "自己启的子项名字"
            keyPassword "密码"
        }
    }

这样就可以使用正式签名测试了
到此,基本上就结束,以后如果有其他平台的分享会补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值