mob第三方分享微信、qq、微博

1、导包

2、之后修改mainfest

<!-- Mob 分享SDK  start -->
<activity
    android:name="com.mob.tools.MobUIShell"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:windowSoftInputMode="stateHidden|adjustResize">
    <intent-filter>
        <data android:scheme="" />

        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

    <!-- 调用新浪原生SDK,需要注册的回调activity -->
    <intent-filter>
        <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

<!-- 微信分享回调 -->
<activity
    android:name=".wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<meta-data
    android:name="Mob-AppKey"
    android:value="" />
<meta-data
    android:name="Mob-AppSecret"
    android:value="" />
<!-- Mob 分享SDK  end -->

3、ShareSDK

   <!-- 
       Wechat微信和WechatMoments微信朋友圈的appid是一样的;
   
       注意:开发者不能用我们这两个平台的appid,否则分享不了
       微信测试的时候,微信测试需要先签名打包出apk,
   sample测试微信,要先签名打包,keystoresample项目中,密码123456

   BypassApproval是绕过审核的标记,设置为trueAppId将被忽略,故不经过
   审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型,
   默认值为false。此外,微信收藏不支持此字段。wx4868b35061f87885
-->
<!--要分享微信小应用程序时用userName,path-->
   <Wechat
       Id="4"
       SortId="4"
       AppId=""
       AppSecret=""
   UserName=""
   Path="pages/index/index.html?id=1"
   BypassApproval="false"
   WithShareTicket = "true"
   MiniprogramType = "0"
       Enable="true" />

4、wxapi中的WXEntryActivity

/** 微信客户端回调activity示例 */
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>
    * 此处用来接收从微信发送过来的消息,比方说本demowechatpage里面分享
    * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信
    * 客户端会通过这个方法,将这个信息发送回接收方手机上的本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();
      }
   }

}

5、底部弹出框

/**
 * 显示底部分享弹出框
 */
private void showBottomDialog() {

    new BottomDialog(this)
            .title(R.string.share_to) //设置标题
            .layout(BottomDialog.LINEAR) //设置内容layout,默认为线性(LinearLayout)
            .orientation(BottomDialog.HORIZONTAL)     //设置滑动方向,默认为横向
            .inflateMenu(R.menu.menu_share, new OnItemClickListener() { //传入菜单内容
                @Override
                public void click(Item item) {
                    if (!Util.isNetworkConnected(DiscernActivity.this)) {
                        showShortToast(getString(R.string.no_network));
                        return;
                    }
                    if (getString(R.string.menu_wechat).equals(item.getTitle())) {  //微信
                        shareToWX();
                    } else if (getString(R.string.menu_moments).equals(item.getTitle())) {  //朋友圈
                        shareToWXPYQ();
                    } else if (getString(R.string.menu_qq).equals(item.getTitle())) {  //QQ
                        shareToQQ();
                    } else if (getString(R.string.menu_weibo).equals(item.getTitle())) {  //微博
                        shareToWB();
                    }
                }
            })
            .show();
}

6、分享到微信

/**
 * 分享到微信
 */
private void shareToWX() {
    showShortToast("正在进入微信分享,请稍等");
    Platform.ShareParams sp = new Platform.ShareParams();

    sp.setTitle("");
    sp.setText("");
    sp.setImageUrl("");
    sp.setUrl("https://www.daodianwang.com");
    sp.setShareType(Platform.SHARE_WEBPAGE);
    Platform pf = ShareSDK.getPlatform(Wechat.NAME);
    pf.setPlatformActionListener(new PlatformActionListener() {
        @Override
        public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
            showShortToast("分享到微信成功");
        }

        @Override
        public void onError(Platform platform, int i, Throwable throwable) {

        }

        @Override
        public void onCancel(Platform platform, int i) {

        }
    });
    if (!pf.isClientValid()) {
        showShortToast("微信未安装,请先安装微信");
        return;
    }
    pf.share(sp);
}




猜你喜欢

转载自blog.csdn.net/Json111/article/details/80136011
今日推荐