iOS WKWebview loadHTMLString(_ baseURL:) 加载图像和读取css失败

2023-12-03

我知道这个问题以前曾被问过,但我的情况有些不同。

我正在尝试打电话给loadHTMLString(_ baseURL:) on WKWebview我的 baseURL 位于AppData/Documents目录。

我需要HTMLstring加载并且需要使用该目录中的图像。这HTMLstring不在任何地方,我下载字符串解析它,修改它并加载它。

据我了解,由于某种安全问题,我无法这样做(它在 UIWebview 上效果很好),所以HTMLstring已加载,但图像和CSS不是。

另外,我也不能打电话loadFileURL(_, allowingReadAccessTo:)因为我没有文件 我有一个HTMLstring由于我自己的安全问题,无法在通话之前将其保存到文件中。

我的代码很大并且很复杂,我希望以最轻松的方式实现加载图像。

有人有想法吗?


我不确定你把它放在哪里的源 HTML 代码。我假设您将其放入捆绑包中。这是我的想法。

在图像标签的 HTML 文件中。我们应该像这个模板一样。

<image src="{xxx}" ....>

然后在iOS代码中。我们将用图像路径替换 src 并加载到 WKWebview 中:

// make sure you have the image name and extension (for demo purposes, I'm using "myImage" and "png" for the file "myImage.png", which may or may not be localized)
NSString *imageFileName = @"myImage";
NSString *imageFileExtension = @"png";

// load the path of the image in the main bundle (this gets the full local path to the image you need, including if it is localized and if you have a @2x version)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageFileName, imageFileExtension]];

// generate the html tag for the image (don't forget to use file:// for local paths)
NSString *imgFilePath = [NSString stringWithFormat:@"file://%@", imagePath];

// Replace an imagepath
NSString *path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
html = [html stringByReplacingOccurrencesOfString:@"{xxx}" withString:imgFilePath];


// Folder html url
NSString *destinationHTMLFolder = [[NSBundle mainBundle] pathForResource:@"myhtml" ofType:@""];
NSURL *destination = [NSURL fileWithPath: destinationHTMLFolder]

[self.webView loadHTMLString:html baseURL:destination];  

注意:请确保 baseURL 指向 HTML 文件夹。它 将 HTML 源代码添加到 Xcode 时,应该有一个“创建文件夹引用”选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS WKWebview loadHTMLString(_ baseURL:) 加载图像和读取css失败 的相关文章

  • 如何在 iPhone 上缩小 UIPickerView?

    我想降低一个高度UIPickerView在我的 iPhone 应用程序中 使其仅显示一行和一列 选择器视图的高度应等于行的高度 我正在使用 Interface Builder 来构建UIPickerView 但我找不到调整此控件大小的简单方
  • 如何通过GPUImage调整图像的亮度和对比度?

    我编写了一种使用亮度因子和对比度因子过滤图像的方法 如下所示 UIImage image UIImage image withBrightness float brightness contrast float contrast GPUIm
  • 在 iPhone 应用程序中获取路线和路线导航

    我正在开发一款应用程序 该应用程序将重点关注在驾驶时为用户提供路线和逐段指示 他们在驾驶过程中留在应用程序中非常重要 因此我真的不想让他们离开应用程序并转到内置的地图应用程序 我最近对如何包含此功能进行了大量研究 众所周知 这并不容易 因为
  • 如何使用 Swift 将文本复制到剪贴板/粘贴板

    我正在寻找一个干净的示例 说明如何将文本复制到 iOS 剪贴板 然后可以在其他应用程序中使用 粘贴 该功能的好处是可以快速复制文本 无需传统文本复制的标准文本突出显示功能 我假设关键课程位于UIPasteboard 但在中找不到相关区域他们
  • UICollectionview 单元格选择

    我制作了一个图像网格 为了显示其选择 我在选择时为图像绘制了边框 但问题是 当我选择顶部的一些图像并向下滚动图像网格时 底部的其他一些图像似乎也被选择了 下面是我的代码片段 UINib cellNib UINib nibWithNibNam
  • iPhone 应用程序拒绝 17.2:应用程序要求用户使用 Facebook 帐户登录

    我按照此处的本机 iOS 应用程序的登录说明进行操作https developers facebook com docs mobile ios build https developers facebook com docs mobile
  • 如何在 iOS 企业帐户中创建开发人员配置文件请求?

    我们有 iOS 企业帐户 现在我们想要向我们的团队添加一名开发人员 该开发人员将创建一个开发人员配置文件 问题是新添加的开发人员在他的苹果帐户中看不到配置文件标签 任何人都知道新添加的开发人员如何创建配置文件 感谢您 Steps 您可以通过
  • AutoLayout 将 UILabel 高度设置为零

    我有一个UILabel对于其他视图中的项目描述 所有内容均使用 Interface Builder 中的约束进行布局 您可以在下图中看到所有相关约束 行数也设置为0 我没有设置高度限制 因为我想要UILabel根据其包含的文本调整大小 相反
  • 快速以编程方式打开 viewController

    我想通过代码在按钮上打开新的 UIViewController 我已经在故事板中制作了控制器 只想链接它 而且我不想使用 XIB 接口或 nibName 要打开新视图控制器 您需要在按钮单击事件中写入以下行 self performSegu
  • 如何正确设置UIView的alpha? [iOS]

    I have UIView有很多子视图 UILabel UITextView 等 如果为主视图设置 alpha 0 6 则所有子视图均采用此 alpha 如何单独设置主视图的alpha view setBackgroundColor UIC
  • uiscrollview 放大和缩小无法正常工作

    我有一个 uiscrollview 里面有一个 uiimageview 我希望用户能够放大图像 因为它是一个大图像 滚动视图只需要垂直滚动而不是水平滚动 在添加缩放效果之前 我有以下代码并且它按我想要的方式工作 void viewDidLo
  • 以点值检测 iPhone 6/6+ 屏幕尺寸

    鉴于新发布的 iPhone 6屏幕尺寸 http www apple com iphone compare iPhone 6 1334h 750w 2x in points 667h 375w iPhone 6 1920 1080 3x i
  • WKWebView 中的调整大小处理程序中的 window.innerWidth/Height 未更新

    我有一些全屏网页内容 当窗口使用调整大小事件更改大小时 我会更新这些内容 window onresize function var width window innerWidth var height window innerHeight
  • 如何从装有 iOS 5 的新 iPhone(供个人使用)获取历史位置数据?

    过去 从 iPhone 上名为solidified db 的文件中获取历史位置数据很容易 例如 请参阅http petewarden github com iPhoneTracker http petewarden github com i
  • Gmail 中删除了 iOS 深层链接

    我正在尝试发送一封带有深层链接的电子邮件到我的 iOS 应用程序 使用 myapp 格式从电子邮件中将其打开 它可以在任何 iOS 邮件客户端 邮件 邮箱等 中运行 即点击它打开应用程序 但不能在 Gmail 应用程序 甚至网络 中运行 因
  • 在后台线程上搜索

    我试图在 iPhone 应用程序中搜索数千个对象 但是搜索严重滞后 每次击键后 UI 都会冻结 1 2 秒 为了防止这种情况 我必须在后台线程上执行搜索 我想知道是否有人有一些在后台线程上搜索的提示 我读了一点NSOperation并在网上
  • searchDisplayController 在 iOS 8 中已弃用

    如何更正以下内容以免出现警告 我缺少什么 修正时searchResultsController to searchController它给了我一个错误 找不到对象 if tableView self searchDisplayControl
  • 在 iOS 中,如何以编程方式填写 pdf 表单字段?

    我需要获取一个现有的 pdf 文件 并以编程方式填写带有文本的表单字段列表 然后保存 pdf 而不将其显示给用户 例如 如果 pdf 文件包含名为 LastName 和 FirstName 的字段 我想将 FirstName 的值设置为 L
  • TestFlight Beta 中的消息不可用

    I am seeing Unavailable message in TestFLight Beta App in iOS8 Please find the attached screenshot please tell me how to
  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi

随机推荐