旧游无处不堪寻,无寻处,惟有少年心
今天新做了一个Demo来实现分享功能,使用的是友盟分享,分享平台包括微博。
- 问题描述
将友盟的图片链接换成了公司接口返回的http开头的图片链接后,微博分享就失效了。分享时选择微博没反应,没有跳转微博客户端,也没有打印什么错误。
//创建分享消息对象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
//创建网页内容对象
NSString *thumbURL = @"http://ksdy.dsmcase.com:90/api/file/image?url=images/company/201809/cpUN8W3jcCjKoXWMDZ9o4IpDeC1PggkWhazWBhrm.jpeg";
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"测试使用分享功能" descr:@"这部分是我的分享文本内容,这部分是我的分享文本内容。" thumImage:thumbURL];
//设置网页地址
shareObject.webpageUrl = @"http://mobile.umeng.com/social";
//分享消息对象设置分享内容对象
messageObject.shareObject = shareObject;
-
解决办法(内容转载自https://www.cnblogs.com/liuzhuan155/p/8073977.html)
第一种更换成https
这种方法是很稳妥的办法。第二种方法:
(1)如果你是原生开发且要分享的图片链接已经在本地加载了的话,那么你就可以直接从缓存中取出图片直接调用分享了
(2)如果是web界面分享的话,那么就很痛苦了。有以下两种方案供参考
第一种方案:先把http图片链接加载成image,但是这种方法有涉及到同步执行可能卡顿问题 。 第二种方案:获取到web界面所有img标签的src地址,本地加载,调用分享的时候直接从缓存获取,获取不到赋个默认本地图片。
如果需要详细说明,可以点击链接去看原文。
- 解决过程
因为是测试的Demo,所以我直接使用了本地图片。
//创建网页内容对象
//NSString *thumbURL = @"http://ksdy.dsmcase.com:90/api/file/image?url=images/company/201809/cpUN8W3jcCjKoXWMDZ9o4IpDeC1PggkWhazWBhrm.jpeg";
UIImage *thumbImage = [UIImage imageNamed:@"123.jpg"];
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"测试使用分享功能" descr:@"这部分是我的分享文本内容,这部分是我的分享文本内容。" thumImage:thumbImage];
重新运行就可以分享至微博了。