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测试微信,要先签名打包,keystore在sample项目中,密码123456 BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过 审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型, 默认值为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> * 此处用来接收从微信发送过来的消息,比方说本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(); } } }
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); }