在使用ShareSDK的时候,遇到的有一个问题是要在QQ上分享图片,但是有个问题是无法分享图片,只能分享个网址,点击打开是个网址,这就很尴尬了。终于在Mob客服Water?那找到了解决方法
其他步骤按照官网上的步骤来
更改showShare的代码
我分享的是本地图片,需要注意的是,只有在
安装了QQ客户端的情况下,才可以分享图片,网页分享不行
private void showShare() {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
oks.setTitle("标题");
// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
oks.setTitleUrl("https://www.baidu.com/");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
// oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
oks.setImagePath(Environment.getExternalStorageDirectory()+ "/xx/a.jpg");//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
@Override
public void onShare(Platform platform, Platform.ShareParams paramsToShare) {
if (platform.getName().equalsIgnoreCase(QQ.NAME)) {
paramsToShare.setText(null);
paramsToShare.setTitle(null);
paramsToShare.setTitleUrl(null);
paramsToShare.setImagePath(Environment.getExternalStorageDirectory()+ "/xx/a.jpg");
} else if (platform.getName().equalsIgnoreCase(QZone.NAME)) {
paramsToShare.setText(null);
paramsToShare.setTitle(null);
paramsToShare.setTitleUrl(null);
paramsToShare.setImagePath(Environment.getExternalStorageDirectory()+ "/xx/a.jpg");
}
}
});
oks.setUrl("https://www.baidu.com/");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite("test");
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("https://www.baidu.com/");
// 启动分享GUI
oks.show(this);
}
测试结果