admin管理员组文章数量:1566222
使用场景
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)
版权声明:本文标题:Android mob(sharesdk)微信分享微信朋友圈分享QQ分享QQ空间分享新浪微博分享(自定义) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1726252002a1062575.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论