http://www.mob.com/
1.在跟目录的build.gradle下添加如下代码
buildscript {
repositories {
jcenter()
}
dependencies {
...
classpath "com.mob.sdk:MobSDK:2018.0319.1724"
}
}
2.在app的build.gradle下添加引用
apply plugin: 'com.mob.sdk'
3.在app的build.gradle下添加MobSDK方法,配置到文件的跟目录,与Android并列。(这里其实是需要去腾讯开发平台去注册申请属于自己app的微信和qq的appId和appSecret的,测试的时候可以用官网上给的。腾讯开放平台入口)
MobSDK {
appKey "d580ad56b4b5" //这里替换为在Mob官网上申请的appkey
appSecret "7fcae59a62342e7e2759e9e397c82bdd" ////这里替换为在Mob官网上申请的appSecret
ShareSDK {
//平台配置信息
devInfo {
Wechat {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
bypassApproval true
}
WechatMoments{
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
bypassApproval true
}
QQ {
appId "100371282"
appKey "aed9b0303e3ed1e27bae87c33761161d"
shareByAppClient true
}
}
}
}
4.在Myapplication中初始化Mob
MobSDK.init(this);
由于我使用的是自己的UI而不是官网给出的九宫格,所以没有采用一键分享到各个平台的方法,所以以下代码是分享到指定平台
1.//QQ分享
Platform.ShareParams sp = new Platform.ShareParams();
sp.setTitle("title");
sp.setText("content");
sp.setTitleUrl("http://sharesdk.cn");
Platform qq = ShareSDK.getPlatform(cn.sharesdk.tencent.qq.QQ.NAME);//指定分享到qq平台
qq.share(sp);
2.微信、朋友圈分享
Platform.ShareParams sp = new Platform.ShareParams();
sp.setTitle("title");
sp.setText("content");
//这里必须指定分享类型,若是图片则为Platform.SHARE_IMAGE
sp.setShareType(Platform.SHARE_WEBPAGE);
sp.setUrl("http://sharesdk.cn");
//若是分享朋友圈,更改为WechatMoments.NAME
Platform we = ShareSDK.getPlatform(Wechat.NAME);
we.share(sp);
这是因为测试的时候使用的是官网给出的appId和appSecret,自己的app的签名和appId对应的应用的签名不一致导致的,所以为了测试,可以绕过审核,在build.gradle的平台信息appSecret下添加
appId "..."
appSecret "..."
bypassApproval true
这是因为没有使用自己在腾讯开放平台上注册的微信的appId和appSecret的原因,注册后替换原来官网给出的值就可以了,但是这里要将bypassApproval true去掉,不写默认是审核。
我这里的原因是因为,本身gradle里面是集成了这个页面的WXEntryActivity,但是由于之前是接过微信支付,所以重新写了这个页面,导致返回的时候出了问题。只需添加相应的回调方法即可。
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
public class WXEntryActivity extends WechatHandlerActivity implements IWXAPIEventHandler
{
private static final String APP_ID = "your wechat appId";
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wxentry);
api = WXAPIFactory.createWXAPI(this,APP_ID,true);
api.registerApp(APP_ID);
api.handleIntent(getIntent(),this);//必须添加
}
@Override
public void onReq(BaseReq baseReq)
{
}
@Override
public void onResp(BaseResp baseResp)
{
String result = null;
switch (baseResp.errCode) {
case BaseResp.ErrCode.ERR_OK:
result = "分享成功";
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = "分享取消";
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = "分享被拒绝";
break;
default:
result = "分享返回";
break;
}
Toaster.show(this, result);
this.finish();
}
}