Android mob(sharesdk)微信分享/微信朋友圈分享/QQ分享/QQ空间分享/新浪微博分享(自定义)

本文介绍了如何在Android应用中使用Mob的ShareSDK进行微信、QQ、微博的自定义分享。首先,需要在Mob官网下载SDK并配置集成,接着在Android Studio的build.gradle文件中添加依赖。在清单文件中进行权限和Activity配置后,通过编写代码实现自定义分享弹框和动画效果。最后展示了完成后的分享面板布局。
摘要由CSDN通过智能技术生成
使用场景

H5混合开发转Android 原生开发,之前也是用的友盟分享、微信原生、QQ原生、微博原生分享,今天这个项目恰好是用的mob的sharesdk分享,老实说,还是第一次使用,一开始接手项目的时候,还以为mob是个后台。

来一张效果图:

在这里插入图片描述

如果打算使用分享的话,那么请尽快申请各大平台的appkey、appID等。这里我就不多细说了。

下面主要是如何用sharesdk进行配置

登录mob,选择sdk下载

网址:http://www.mob.com/download

(一):选择SDK下载、选择Android选项,选中新浪微博、微信、QQ,点击保存设置。

在这里插入图片描述

(二):然后选择右边的下载按钮,这时候会出现一个最新的基于Android Studio的gradle版本配置,只需要简单两步就可以集成进去。

在这里插入图片描述
(三):在根build下进行配置
在这里插入图片描述

(四):在项目的moudle下的build.gradle添加MobSDK的配置:

MobSDK {
   
     appKey "替换为mob官方申请的appkey"
    appSecret "替换为mob官方申请的appkey对应的appSecret"
    gui false    // 使用自定义的gui界面
    ShareSDK {
   
        //平台配置信息
        devInfo {
   
            SinaWeibo {
      // 新浪微博
                appKey "23s050667"
                appSecret "a45019672f15f954esdfsef41d4411065"
                callbackUri "http://xxx.com/home/Index/indexx.html"
                shareByAppClient true    // 这里的true为从微博客户端进行启动,而不是从网页版的微博启动
            }
            Wechat {
      // 微信好友分享
                appId "wx1f84cbafdsad7d477b"
                appSecret "f1839f6a28bb0f4xxxsa38150dd9a524"
            }
            WechatMoments {
      // 微信朋友圈分享
                appId "wx1f84cbafdsad7d477b"
                appSecret "f1839f6a28bb0sdf0dd9a524"
            }
            QQ {
       // QQ分享
                appId "110aafddsa024"
                appKey "269afdas1zTcvZ"
            }

            QZone {
     // QQ空间分享
                appId "110aafddsa024"
                appKey "269afdas1zTcvZ"
            }

        }
    }

}

(五):以上的注释都很清楚,比如你只注册了个微信分享,而没有注册微信朋友圈分享的话,在代码中是导入不了微信朋友圈分享的包。
在这里插入图片描述
差不多就是上图这样子的。

(六):清单文件中进行配置:
AndroidManifest.xml:

	// 微信配置
        <activity
            android:name="wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
	// QQ配置     
   <activity
            android:name="cn.sharesdk.tencent.qq.ReceiveActivity"
            android:launchMode="singleTask"
            android:noHistory="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="tencent+申请ID" />
            </intent-filter>
        </activity>

在这里插入图片描述

(七):WXEntryActivity.java:

public class WXEntryActivity extends WechatHandlerActivity {
   

    /**
     * 处理微信发出的向第三方应用请求app message
     * <p>
     * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中
     * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可
     * 做点其他的事情,包括根本不打开任何页面
     */
    public void onGetMessageFromWXReq(WXMediaMessage msg) {
   
        if (msg != null) {
   
            Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());
            startActivity(iLaunchMyself);
        }
    }

    /**
     * 处理微信向第三方应用发起的消息
     * <p>
     * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享
     * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信
     * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作
     * 回调。
     * <p>
     * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast
     */
    public void onShowMessageFromWXReq(WXMediaMessage msg) {
   
        if (msg != null && msg.mediaObject != null
                && (msg.mediaObject instanceof WXAppExtendObject)) {
   
            WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
            Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
        }
    }
}

(九):来一张效果图:

在这里插入图片描述
(十一):点击右上角,进行弹框,然后点击icon进行分享。(代码可能有些乱,欢迎指正)

(1):点击按钮进行弹框:


    private void showShareDialog(final String shareTitle, final String shareDesc, final String shareImg, final String shareUrl) {
   

        new ShareDialog(mContext, new ShareDialog.onClickback() {
   
            @Override
            public void onShare(int resId) {
   
                switch (resId) {
   
                    case Constants.SHARE_WECHAT:
                        ShareUtil.share(mContext, Constants.SHARE_WECHAT, shareTitle, shareDesc, shareImg, shareUrl);
                        break;
                    case Constants.SHARE_WECHAT_CIRCLE:
                        ShareUtil.share(mContext, Constants.SHARE_WECHAT_CIRCLE, shareTitle, shareDesc, shareImg, shareUrl);
                        break;
                    case Constants.SHARE_QQ:
                        ShareUtil.share(mContext, Constants.SHARE_QQ, shareTitle, shareDesc, shareImg, shareUrl);
                        break;
                    case Constants.SHARE_QQ_ZONE:
                        ShareUtil.share(mContext, Constants.SHARE_QQ_ZONE, shareTitle, shareDesc, shareImg, shareUrl);
                        break;
                    case Constants.SHARE_SINA_WEIBO:
                        ShareUtil.share(mContext, Constants.SHARE_SINA_WEIBO, shareTitle, shareDesc, shareImg, shareUrl);
                        break;
                }
            }
        }, Constants.SHARE_WECHAT, Constants.SHARE_WECHAT_CIRCLE, Constants.SHARE_QQ, Constants.SHARE_QQ_ZONE, Constants.SHARE_SINA_WEIBO).show();
    }

(2)ShareDialog弹框类:

public class ShareDialog extends Dialog {
   
    private onClickback callback;

    public ShareDialog(Context context, onClickback callback, int... args) {
   
        this(context, R.layout.dialog_share, R.style.DialogTheme, FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
        this.callback = callback;
        for (int i = 0; i < args.length; i++) {
   
            int arg = args[
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值