Android-ShareSDk的接入

官网

http://www.mob.com/

接入步骤

(1)在mob官网注册APPKEY与APPSecret Mob申请步骤入口

(2)AndroidStudio 集成(gradle)

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);

(3)使用方法

由于我使用的是自己的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);

(4)可能出现的问题

1.微信朋友圈分享时,获取资源失败

这是因为测试的时候使用的是官网给出的appId和appSecret,自己的app的签名和appId对应的应用的签名不一致导致的,所以为了测试,可以绕过审核,在build.gradle的平台信息appSecret下添加

appId "..."
appSecret "..."
bypassApproval true
2.微信分享后,弹出对话框,显示的是返回第三方工具,而非自己的app名字,就算点击了返回第三方工具,也是停留在微信。

这是因为没有使用自己在腾讯开放平台上注册的微信的appId和appSecret的原因,注册后替换原来官网给出的值就可以了,但是这里要将bypassApproval true去掉,不写默认是审核。

3.从微信分享返回会导致当前页面重新走一遍生命周期,或者白屏,或者闪屏,或者无法监听分享结果。大家给出这个问题的原因有很多,解决办法也有很多。但是主要是与这个页面相关即 WXEntryActivity

我这里的原因是因为,本身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();
    }
}

你可能感兴趣的:(Android-ShareSDk的接入)