ShareSdk集成之一,植入代码,可修改图标,修改分享样式
一、资料准备
1、官方后台创建开发者账号,创建应用,获取key
2、下载sdk;勾选要集成的平台;
3、解压文件夹,得到以下目录;
3、再次生成需要的平台后
二、集成shareSdk
1、(官方集成的第一种方式)直接复制jar和资源的方式,可以参考ShareSDK的Sample项目。 使用复制jar的方法,需要除了复制MainLibs/libs中的jar外,还需要复制 MainLibs/res中图片和strings,否则会出现授权时找不到资源的问题。 而且如果您的项目也集成了快捷分享,还需要复制OneKeyShare/src中的源码、OneKeyShare/res中的资源,如果你的项目里没有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的项目中。
2、将Sample下的libs复制到studio项目的的libs, 将assets复制到studio下。将SampleSample\src\cn\sharesdk\onekeyshare复制到java下。同时复制资源文件将Sample\res下的文江复制到对应文件下
3、得到studio下的文件(一些jar是其他的,于本文无关,复制sample下的即可)
4、这是分享用到的资源文件(不复制,会没有图片和文字但可以分享)
5、在ShareSdk.xml中进行设置,写入对应的微信和qq等三方平台得到的AppSecret和AppKey
三、进行样式改变(浅析)
https://blog.****.net/baidu_27282085/article/details/70319385
四、使用
ShareSDK.initSDK(this); OnekeyShare oks = new OnekeyShare(); // 关闭sso授权 oks.disableSSOWhenAuthorize(); oks.setTitle(shareBean.title); // titleUrl是标题的网络链接,仅在人人网和QQ空间使用 oks.setTitleUrl(shareBean.url); // text是分享文本,所有平台都需要这个字段 oks.setText(shareBean.content); // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数 // oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片 if(StringUtils.isNotEmpty(shareBean.cover_url)) { oks.setImageUrl(shareBean.cover_url); }else{ oks.setImageUrl(URLHelper.ShareImageURL); } // url仅在微信(包括好友和朋友圈)中使用 oks.setUrl(shareBean.url); oks.setCallback(new PlatformActionListener() { @Override public void onError(Platform platform, int arg1, Throwable t) { // TODO Auto-generated method stub Log.e("sharesdk","sharesdk-error="+t.toString()); if (SinaWeibo.NAME.equals(platform.getName())){ platform.removeAccount(true); } } @Override public void onComplete(Platform platform, int arg1, HashMap<String, Object> arg2) { if (SinaWeibo.NAME.equals(platform.getName())||platform.getName().equals("QZone")||platform.getName().equals("WechatMoments")) { mHandler.post(new Runnable() { @Override public void run() { Toast.makeText(mContext, "分享成功", Toast.LENGTH_SHORT).show(); } }); } } @Override public void onCancel(Platform arg0, int arg1) { } });// 調用自己設置的callback // 启动分享GUI oks.show(this);