admin管理员组

文章数量:1530026

使用场景

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

来一张效果图:

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

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

登录mob,选择sdk下载

网址:http://www.mob/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/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[i];
            switch (arg) {
   
                case Constants.SHARE_REPORT:
                    findViewById(R.id.ll_report)

本文标签: 自定义新浪朋友圈空间mob