iOS 集成友盟分享图片链接为http时无法加载问题解决
|
一、问题描述 UMShareWebpageObject *obj = [UMShareWebpageObject shareObjectWithTitle:title descr:shareText thumImage:imgUrl];里面thumImage如果是本地图片,分享的时候就能够显示图片,但是如果换成http的网络图片地址,就无法显示 |
二、解决方法
1.第一种更换成https
这种方法是很稳妥的办法
2.第二种方法:
(1)如果你是原生开发且要分享的图片链接已经在本地加载了的话,那么你就可以直接从缓存中取出图片直接调用分享了
(2)如果是web界面分享的话,那么就很痛苦了。有以下两种方案供参考:
第一种方案:先把http图片链接加载成image,但是这种方法有涉及到同步执行可能卡顿问题 。
第二种方案:获取到web界面所有img标签的src地址,本地加载,调用分享的时候直接从缓存获取,获取不到赋个默认本地图片。
三、本人就是采取的第二种方法种的方案二。具体实现如下:
由于我加载web采用的WKWebview,所以我在
-(void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation方法中实现img标签本地加载,具体方法:
//设置JS获取html内所有img标签的src组成以,号隔开的字符串返回
[_wkWebView evaluateJavaScript:@"var str=new Array();"
"$('img').each(function(){str.push($(this).attr('src'));});"
"str.join(',');" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",response);
NSArray *images = [response componentsSeparatedByString:@","];
if ([images isKindOfClass:[NSArray class]]) {
[images enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj rangeOfString:@"http"].location !=NSNotFound) {
[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:obj] options:(SDWebImageContinueInBackground) progress:^(NSInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
NSLog(@"+++%@",image);
}];
}
}];
}
}];

四、以上就是我的解决办法,如果各位有什么更好的解决办法求分享。
iOS 集成友盟分享图片链接为http时无法加载问题解决的更多相关文章
- IOS 集成友盟分享
#import <Foundation/Foundation.h> @interface UMSocialSinaHandler : NSObject +(void)openSSOWith ...
- WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题
今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException ...
- iOS开发-友盟分享(1)
1.集成友盟分享,需要先注册一个友盟账号,注册地址 友盟开发者平台官网 友盟集成文档 友盟sdk下载地址友盟sdk下载地址 2,成功下载sdk集成后,微信分享需要配置一下 新浪微博 之类到同样配置就 ...
- iOS开发——友盟分享
==========2016-01-29 更新=====刘成利 email:liu_cheng_li@qq.com========== 自己成功集成到公司的项目前,也已做了测试好的友盟分享demo 目 ...
- iOS开发-友盟分享(3)
iOS 友盟分享 这个主要是提到如何通过友盟去自定义分享的步骤: 一.肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的工程文件夹里面去: 二.注册友盟账号,将你的APP添加到你的账号里面然后 ...
- iOS开发-友盟分享使用(2)
1.友盟SDK提供功能:分享喜欢的东西到新浪微博.qq空间.为微信朋友圈等等等等社交圈. 2.友盟分享前期准备 (1)注册账号 去官网 (2)创建应用获取appkey 类似5556a53667e*** ...
- iOS集成友盟推送
之前有写过利用Python自己写一个推送服务器, 今天说下如果集成友盟的推送服务 在这之前我们需要做一些准备动作 #1. 注册一个App ID #2. Enable Push Notification ...
- android 集成友盟分享之后,想自定义分享面板的看过来
第一种情况 首先上传一张默认的友盟分享的效果图 看起来还不错,但是总是有这样那样的原因,需要我们对默认效果做出一些改变. 第二种情况 如果你想做出下面的效果: 或者这样的效果 : 总之上面的效果总是在 ...
- iOS关于友盟分享弹不出面板问题
在程序代理类中声明 [NSThread sleepForTimeInterval:10];//设置启动页面时间 [self.window makeKeyAndVisible]; [[UMSocialM ...
随机推荐
- TIOBE 11月指数:C语言居首,稳居宝座,Python直逼第二!
官方网址:https://www.tiobe.com/tiobe-index/ 这是自近20年前TIOBE指数开始以来,Java和C第一次不再占据前两位.C仍然是第一位的,但是现在第二个位置是 ...
- Flink实战(102):配置(一)管理配置
来源:http://www.54tianzhisheng.cn/2019/03/28/flink-additional-data/ 前言 如果你了解 Apache Flink 的话,那么你应该熟悉该如 ...
- Django REST Framework JWT 用户的登录注册
安装配配置 pip install djangorestframework-jwt 配置setting ########### 1.在INSTALLED_APPS中加入'rest_framework. ...
- String、StringBUffer和StringBuilder的区别与使用
一.区别 String是一个不可变的类,即创建String对象后,该对象中的字符串是不可变的,平时我们改变String对象中的字符串实际上是通过StringBuffer实现的,所以StringBuff ...
- 老猿学5G:3GPP和中国移动5G计费架构概览
☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿学5G这个专栏主要记录笔者因工作原因学习了解5G计费相关知识,文章按时间顺序循序渐进的介绍5G基础概念以及5G计费相关知识,该专栏前期已经完结, ...
- PyQt(Python+Qt)学习随笔:QSpinBox数字设定部件简介
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在输入部件中,数字调整框QSpinBox是个很实用 ...
- Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?
在<第8.23节 Python中使用sort/sorted排序与"富比较"方法的关系分析>中介绍了排序方法sort和函数sorted在没有提供key参数的情况下默认调用 ...
- PyQt学习随笔:ListView控件增加列表项
ListView控件如果需要增加列表项,就是在对应数据存储中插入项,这又分两种情况,一种是已知列表数据存储,一种是未知数据存储.如果是未知数据存储,可以通过: ListView控件名.model() ...
- 谈谈传说中的redo log是什么?有啥用?
目录 一.引出 redo log 的作用 二.思考一个问题: 三.redo log block 四.redo log buffer 五.redo log的刷盘时机 六.推荐参数 七.redo log ...
- Hbase 2.2.2 简单API操作
前言 小案例中有创建表.创建命名空间.插入数据.获取数据. 环境准备 maven依赖可根据自己的版本进行调整 <!-- hbase依赖--> <dependency> < ...