- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 webview,我想使用 loadHtmlString 方法加载它。问题是我希望能够使用我之前下载的图像更改 img src。我还在 html 中使用 google analitics,所以我需要将 baseUrl 设置为实际的 url,这样它才能工作。问题来了。如果我输入 baseUrl,图像将不会加载。如果我不设置baseUrl,它就可以工作。我怎样才能解决这个问题,这样我就能够使用 google analitycs 并将图像本地存储在我的应用程序中?我不想在我的项目中实现 google analitics sdk。
奇怪的是,如果我在模拟器中运行它,并且不在我的 baseUrl 前面添加“http://”前缀,它就可以正常工作。但是,当我在设备上运行它时,我收到以下错误并且它不起作用:
Domain=WebKitErrorDomain Code=101 "The URL can’t be shown"
谢谢
编辑
如果我这样做,它会起作用:
[appsWebView loadHTMLString:htmlString baseURL:nil];
但是,我必须提供基本 URL 才能让 Google Analitics 正常工作,我还有另外两种情况:
这个出现了上述错误:(在模拟器中运行正常,但在设备上运行时出现错误)
[appsWebView loadHTMLString:htmlString baseURL:[NSURL urlWithString:@"test.com"]];
这个根本不显示任何内容:(既不加载 html 字符串也不加载 url)
[appsWebView loadHTMLString:htmlString baseURL:[NSURL urlWithString:@"http://test.com"]];
最佳答案
我错误地认为问题是本地镜像未完全指定完整路径,但这似乎不是这里的问题。但是,您说得很对,您似乎无法指定某些基于 Web 的 baseURL
并在 HTML 字符串中引用本地镜像(有点令人惊讶)。我没有想到简单的解决方案,但至少,您可能有几个(不是很好)选择:
首先,您可以使用一些 Base64 库(例如 Mike Gallagher's NSData+Base64 category)对本地镜像进行 Base64 编码。 ,例如:
NSData *imageData = [NSData dataWithContentsOfFile:imagePath];
NSString *imageDataBase64 = [imageData base64EncodedString];
NSString *imageHtml = [NSString stringWithFormat:@"<img src='data:image/png;base64,%@'>", imageDataBase64];
这会减慢初始渲染速度,但也许总比没有好。
第二,您始终可以尝试将 baseURL
保留为 nil
,从 HTML 字符串中删除执行 Google Analytics(分析)的 JavaScript,然后然后尝试通过 stringByEvaluatingJavaScriptFromString 注入(inject) JavaScript。这种方法可能有效,也可能无效,具体取决于 Google Analytics JavaScript 的复杂性(例如,它可能有哪些进一步的基于网络的引用),但您有可能以这种方式执行某些操作。
我很抱歉假设问题是一个微不足道的 img
URL。显然您已经发现了一个更根本的问题。
原始答案:
在 HTML 字符串中创建图像 URL,使其成为本地文件系统中的完全限定文件 URL:
图像位于文档
中:
NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *imagePath = [documentsPath stringByAppendingPathComponent:imageName];
或者在 bundle 中:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:imageName
ofType:nil];
但是,一旦您拥有完全限定的路径,您应该能够使用它:
NSURL *imageUrl = [NSURL fileURLWithPath:imagePath];
NSString *imageHtml = [NSString stringWithFormat:@"<img src='%@'>", imageUrl];
关于ios - UIWebView loadHtmlString 无法在设备上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13533088/
关于这个有几个问题,它有一个关于嵌入在 html 字符串中的脚本的解决方案。不是我的情况。 我有一个 ios5/6 应用程序。 我尝试将加载代码放入 initWithNibName坏主意,viewDi
我是 iOS 编程新手,并试图弄清楚 loadHTMLString:baseURL: 到底做了什么,但我找不到令人满意的解释。苹果的网站只是说: Sets the main page content
我对 UIWebView 的 loadHTMLString 有一个奇怪的问题,当我使用内容 HTML 字符串调用 loadHTMLString 时,它只会显示空白 View 。 htmlstring
我正在尝试将 HTML 内容加载到 WKWebView ,它无法正确加载与屏幕高度/宽度相同的代码,相同的代码可以正常使用 UIWebView ,见如下代码 webView.loadHTMLStrin
为了解决 ios 中链接的 UITextview 蓝色问题(我想要白色的),我在自定义弹出窗口中实现了 UIWebview 在我的弹出 Controller 中,我有以下代码( uiwebview 设
我有一个 webview,我想使用 loadHtmlString 方法加载它。问题是我希望能够使用我之前下载的图像更改 img src。我还在 html 中使用 google analitics,所以
LoadHtmlString UIWebView 不工作。我想播放嵌入式你管视频。我试过使用嵌入式 HTML 字符串。但有些似乎坏了我得到白屏。我试过以下 NSString* html = @"";
我正在制作一个新闻阅读应用。我有一个用作分页 Controller 的 ArticleDetailPagingVC。这有一个带有多个 ArticleDetailViewController 的 UIS
我尝试: let body = ".. ANYTHING .." self.webView.loadHTMLString(body, baseURL: NSURL(string: "www.googl
我有一个由 UIWebView 组成的无限旋转木马。在每次滑动时,一个 UIWebView 被移除 (ARC) 并且一个被构建。在主线程上,UIWebView 通过调用 UIWebView 实例上的
我的 UIWebview 使用 loadHtmlString 加载本地 html 文件。加载的页面有指向其他本地 html 文件的链接以及使用互联网的真实链接。 我添加了一个后退按钮: if ([se
如果 Apple 在 loadHTMLString 期间遇到错误,它们会将错误抛出到单独的线程上,没有堆栈跟踪(在 Xcode4 中),并且不会输出到控制台。 您如何监听这些错误、调试它们并最终对它们
如何将以下内容转换为使用“loadRequest”而不是“loadHTMLString”? 我需要添加一个 HTTP header ,我发现的唯一方法是将 loadRequest 与 NSMutabl
我正在编写我的第一个 iPhone 应用程序.. 如何使用“loadHTMLString:baseURL:”将用户发送到名为“pagetwo.m”的 View ? 最佳答案 要从一个 View 导航到
我使用 loadHTMLString 函数通过 HTML 字符串将 HTML 代码加载到我的 UIWebView 中。这些 HTML 页面中有相同的 1.5 MB 字体文件。根据蜂窝数据使用统计数据,
我正在尝试在 UIScrollView 中延迟加载 UIWebViews。每次用户滚动时,WebViews 框架都会更新,并且应该加载新内容。而这正是我遇到麻烦的地方。重新定位效果很好,但新内容(本地
我的应用程序包中有一些嵌入的 html。我正在使用 loadHtmlString 加载它。同时我的文档文件夹中有一些图像文件。我想用我的文档文件夹中的一个替换html中的img。例如,这是我拥有的示例
我遇到了 UIWebView 的问题。我想在 UIWebView 中呈现我自己的 html 代码。 如果我使用下面的代码,它工作正常。 NSBundle *thisBundle = [NSBu
我正在开发一个mac应用程序项目。使用WKWebView的loadHTMLString方法,我能够构建一个网页 View ,除了图像加载部分之外,它运行良好。 例如: NSString *string
我不明白为什么这不起作用。我的桌面上有一个 test.htm 文件,如下所示: MathJax.Hub.Config({ tex2jax: {inlineMath: [["$","$"],
我是一名优秀的程序员,十分优秀!