问题标签 [uiwebviewdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3922 浏览

iphone - UIWebView:为什么使用不存在的主机名时请求不会超时?

我的情况是这样的:

  • 我有一个UIWebView向用户提供主机名的 URL 发出 POST 请求。
  • 当主机名不存在时,我需要超时,以便我可以提醒用户说他们应该检查他们的设置。

怎么了:

我提出这样的要求:

当网络上不存在主机名时,我没有收到任何超时响应。

我已经实现了 的所有委托方法UIWebViewDelegate,当我使用不存在的主机名时,我会按顺序调用以下方法:

  1. webView: shouldStartLoadWithRequest: navigationType:
    • (测试时总是返回真)
  2. webViewDidStartLoad

就是这样 - 在那之后什么都没有。

我很惊讶webViewDidStartLoad被调用,因为这表明它找到了 URL 并认为它可以从中获取数据。但它不能,因为 URL 不存在!

我在这里做错了吗?

我有一个我要实现的解决方法,它使用一个NSTimer来查看是否在超时期限内收到了响应。但是,我在取消请求时遇到问题UIWebView- 但这是我下一个 SO 问题的主题!

所以我的问题:

  1. webViewDidStartLoad在无效的 URL 上调用是否正确?
  2. 我是否应该通过设置请求的方式看到返回的请求超时错误?

提前致谢!!

拉紧 :)

0 投票
1 回答
531 浏览

uitableview - 确定 UIWebView 内容的高度(嵌入在 UITableViewCell 中)

我有一个 UITableView 持有UIWebView可变高度的 s,并且用户可以编辑每个 web 视图的内容。每个单元格(Web 视图)的内容都链接到一个NSManagedObject子类,该子类的内容高度存储为contentHeight. 当最初创建一组新内容时,它会填充一组具有设定高度的默认数据,因此没有问题。

当用户编辑网页视图的内容时,我的问题就出现了;我需要弄清楚新内容的高度并相应地更新表格视图。我已经设置了更新contentHeight相应对象的已保存变量的逻辑,但我找不到可靠的方法来确定新内容的高度。下面我列出了一些我尝试过但无法奏效的方法。任何帮助将不胜感激,我已经被难住了一个多小时了:(

失败的方法:

0 投票
1 回答
1107 浏览

iphone - UIWebView 委托第二次不工作

我有一个 rss 提要,它返回一个包含标题、短文本和全尺寸文本的 json。短文本的标题和部分显示在 TableView 中。

我有 3 个控制器和 3 个视图。View 1 显示一个 TableView 包含来自 json 的文章(标题和短文本),每篇文章都有一个“阅读更多”按钮,在按钮的 IBAction 中,我将 viewcontroller(2) 推入导航控制器,控制器有一个 UIWebView(第二个视图),它加载一个 html 字符串。该字符串包含链接,当用户点击一个链接时,我想呈现一个带有另一个 WebView(3) 的模态视图控制器,这次使用请求(请记住,两个 WebView 都有单独的控制器和nib )。代表在他们两个上都正确设置,我从代码和使用可视化工具都试过了。在委托方法中 shouldStartLoadWithRequest在第一个 WebView 中,我检查请求参数是否包含“http”或“www”,因为只有这样我才想调用第二个 WebView。第二个 WebView 第一次运行良好,视图以模态方式呈现,但是当我关闭它并点击相同的链接或另一个时,不调用shouldStartLoadWithRequest委托方法,但链接在同一个 WebView 中加载(第一个) .

我用谷歌搜索了这个,但没有找到与我类似的案例或解决方案。我对ios应用开发没有那么多经验,但是一个同事很好,我们没有设法找到解决这个问题的方法。我们把代码拆开分析了一下,但是我们没有找到这个问题的潜在根源,而且他有一个单独的项目,他也有同样的问题,只是他只使用了一个控制器和一个 WebView(我们的控制器和 nib 在独立创建)。我们对研究和代码检查非常彻底

0 投票
1 回答
814 浏览

ios - 为什么通过javascript设置列宽和间隙后UIWebView不重排文本?

我正在将一个 html 文件加载到 UIWebView 中,并通过 webViewDidFinishLoad 中的 javascript 设置“-webkit-column-width”和“-webkit-column-gap”样式属性,但文本不会重排到列中。

}

我已经通过警报确认样式属性设置正确,所以我不明白为什么它们没有效果。通过 Safari 中的控制台执行相同的 javascript 字符串具有预期的效果。知道为什么这在 UIWebView 中不起作用吗?

0 投票
1 回答
165 浏览

ios - 在 iOS 的 web 视图中加载 webivew

我在加载时遇到问题UIWebView。我有一个 webview(1st),其中加载了一个 url。当加载该页面时,我正在创建一个小视图,它在第一个 webview 顶部有 webview(2nd),它正在加载第二个 url。基本上我在 webview 中加载 webview。点击第二个 webview 中的 url,生成的 url 必须在应用程序外部的 safari 中打开。如果我没有设置[webview setDelegate:self],那么页面会按预期加载到小型 web 视图中,但是在点击时,什么都没有发生..

但是,如果我将第二个委托人设置UIWebView为 self,则需要在第二个UIWebView加载的 url 将在第一个 url 中加载。

有没有人更早地完成过这种 webview 加载。请帮助。非常感谢您的帮助

谢谢

0 投票
1 回答
1030 浏览

ios - 如何允许对 uiwebview 上的操作发出 javascript 警报

我正在将网页加载到我的 UIWebView 上。网页加载成功,网页上的按钮工作正常。但是当我在网页的文本框中输入错误的文本时,我无法在网页上看到应该弹出的警报。

如何允许显示警报。

请帮我。谢谢你

这是我的代码:

0 投票
2 回答
851 浏览

ios - UIWebView loadRequest 重用给出闪烁效果

我有多个 pdf 文件。根据用户输入,我正在使用 UIWebView 加载 pdf。在第一次 loadRequest 时,它会正确加载 pdf。从第二次调用 LoadRequest 开始,它在加载新的 pdf 时显示出一些闪烁效果。这意味着开始模糊显示内容并在几秒钟内慢慢正确显示内容。

下面的代码片段:

0 投票
2 回答
2091 浏览

objective-c - iPad中的UIWebView问题

我在尝试加载有效 URL 时看到以下消息并且没有网页:

delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:)等待 10 秒后未能返回。主运行循环模式:kCFRunLoopDefaultMode

任何人都可以帮助我吗?

使用:iOS 4.x 上的 iPad 2

评论:在 iOS 5.x 上似乎没问题

使用的代码:

0 投票
0 回答
298 浏览

javascript - 如何将 Javascript 触摸事件传递给 Objective-C UIWebView 本机代码?

我知道 UIWebView 包含一个在链接加载之前调用的方法,即 webView:shouldStartLoadWithRequest:navigationType:。

使用它,UIWebView 委托中的本机代码可以拦截加载请求并决定如何处理它们,这为我们提供了一种在 UIWebView 和其中运行的 JavaScript 之间进行通信的方法。

但是,当尝试传递触摸事件或当前触摸位置等信息时,这似乎是一个糟糕的解决方案。我们是否应该为每个触摸事件伪造一个链接加载并以这种方式传递信息?这似乎很慢而且很hack-ish。有什么更好的方法来做到这一点?

0 投票
1 回答
444 浏览

javascript - 不调用来自 javascript 的 Objective-C 方法

我有一个UIWebView包含带有 JS 功能的按钮,但委托方法仅在加载页面上调用,而不是在按下的按钮上,正如我所期望的那样。

问题是什么?

附言

我正在模拟器上测试。

在.h中:

以 .m 为单位: