问题标签 [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 回答
3500 浏览

iphone - Objective c 在 Safari 中从 UIWebView 打开链接

我有一个 UIViewController 子类,它包含一个 UIWebView 并实现了 UIWebViewDelegate。我想要做的是在 UIWebView 中按下链接以在 safari 中打开。
我已经阅读了过去有关此问题的问题,但仍然无法使其正常工作。这是关于我所做的事情:

- (void)viewDidLoad 我的课堂方法中,我使用以下代码:

我不想显示在 articleWebView 对象中加载的整个 html 页面,所以在-(void)webViewDidFinishLoad:(UIWebView *)webView我使用的方法中:
NSString *content = [articleWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('myDivId')[0].outerHTML;"];

然后我清空(释放)articleWebView 并加载内容:

我尝试使用以下内容,但它不起作用

任何想法我错过了什么?
先感谢您。

编辑:正如我所见, shouldStartLoadWithRequest 没有被调用,所以我猜我的 webView 的代表有问题?

0 投票
1 回答
1303 浏览

xcode - UIWebView 委托代码似乎不正确

我已经使用我找到的 UIWebView 实现了示例代码,但它看起来不正确,尽管它可以工作。特别是因为它设置了 UIWevView 委托两次(在 viewDidLoad 和 viewWillAppear 中)。此外,myWebView 被设置为一个自动释放对象,但随后它在dealoc 中被释放。我希望有人能告诉我如何清理它。

0 投票
1 回答
1955 浏览

javascript - 避免 UIWebView 加载 iTunes App

加载 iTunes URL 时如何避免 UIWebView 打开 iTunes 应用程序?

示例网址: http: //itunes.apple.com/nl/app/bluppr-postcards/id348147229 ?mt=8

上面的 URL 直接加载 iTunes 应用程序。UIWebViewDelegate 似乎无法控制它以仅在 UIWebView 中加载页面。

它似乎是由 JavaScript 函数 detectAndOpenItunes(); 控制的。在页面的正文标签中。

有任何想法吗?

0 投票
1 回答
3637 浏览

ios - UIWebView 的 sizeToFit 只工作一次

在我的自定义 UIViewController 中,我有两个不同的 UIWebView,我的自定义 UIViewController 是其委托。在webViewDidFinishLoad:webView我打电话时[webView sizeToFit],我可以确认它被调用了两次,每个 UIWebView 调用一次。然而,令我非常沮丧的是,它似乎只影响第一个被调用的,而另一个保持不变。显然它们的内容都超出了界限,所以我希望它们会相应地调整大小。

现在,在这个问题上花了很多时间之后,我什至应该如何继续了解问题所在?

编辑:好吧,显然问题是当我调用 sizeToFit 时,我放置第二个 UIWebView 的视图在屏幕上不可见。在显示视图后延迟调用它会导致预期的行为。现在我必须找到一种方法来做到这一点而不显示它,因为我需要在以后出现。想法?

0 投票
2 回答
1006 浏览

objective-c - Javascript 到 Obj-c 请求.. 将值返回给 Javascript

我的应用程序有一个 UIWebView 组件,它使用“webView:shouldStartLoadWithRequest:navigationType:”调用 Obj-c 函数,我在这里解析请求,然后调用所需的 Obj-c 代码。

我接下来想做的是将一个值返回给 Webview .. 例如状态、消息等。

目前我已经尝试了许多解决方案,但似乎没有任何效果。我现在不发布代码,因为它足够基本。

值得一提的尝试是使用“stringByEvaluatingJavascriptFromString”,它会在 UIWebView 页面中设置全局变量。然后我尝试运行一个无限循环(有超时),以观察全局变量的变化。然后 Javascript 会知道响应已从 Objective-c 函数返回。这似乎不起作用,因为“无限循环”似乎没有阻塞 javascript 线程。

有没有人遇到过这个问题。

看起来有一个函数“windowScriptObject”可以让我直接访问 UIWebViews 脚本对象。可惜它在 iOS 中不可用,是否有人知道解决方法。现在正在研究它..

谢谢。

0 投票
3 回答
703 浏览

iphone - iOS 不同的输出,无论是在模拟器还是在设备上运行

我又遇到了一个超级奇怪的问题。无论是在模拟器上还是在 iPhone 上运行应用程序,我都会得到不同的输出。

查看这些控制台日志:

iPhone 首次运行,点击了第一个职业单元格

模拟器 第一次运行,点击第一个职业单元格

似乎在 iPhone 上,方法是在方法之后webViewDidFinishLoad加载的。viewDidAppear

但是在模拟器上是在方法之前webViewDidFinishLoad加载的。viewDidAppear

是什么赋予了?

编辑:更奇怪的是,这仅在我单击加载具有我的 UIScrollView 和 UIWebView 的视图控制器的第一个单元格时发生。我单击该webViewDidFinishLoad方法的所有后续单元格都在该方法之前加载viewDidAppear

有什么办法可以纠正这个吗?

0 投票
2 回答
395 浏览

iphone - 当另一个 viewController 在屏幕上时调用某个 UIViewController 上的方法?

我有一个带有一堆视图控制器的常规应用程序——比如说 viewControllerA、viewControllerB 和 viewControllerWeb。

"viewControllerWeb" 是一个 UIWebViewDelegate 并且里面只有一个 UIWebView。即使在与 viewControllerA 或 viewCONtrollerB 交互时,我也想调用它的方法。(方法如[webview stringByEvaluatingJavaScriptFromString:]

所以本质上,我似乎希望“viewControllerWeb”以某种方式在后台打开。任何人都知道如何完成这样的事情?我在想这个错误的方式吗?

希望你们能帮帮我!非常感谢!

0 投票
0 回答
246 浏览

iphone - iPhone SDK - 持有并复制 UIWebView

在 iPhone safari 中,如果我们按住图像一秒钟,就会出现一个保存或复制图像的操作表。同样,如何获取我在 UIWebView 中保存的图像的 URL?提前致谢。

0 投票
1 回答
954 浏览

iphone - iPhone 中的 WebView 崩溃

当我在 webView 中的应用程序中连续打开 URL 3 到 4 次时,出现以下崩溃。

有什么问题?

0 投票
2 回答
1928 浏览

iphone - 在委托函数 shouldStartLoadWithRequest 中返回 NO 后是否正常调用 didFailLoadWithError?

我看到 Apple 的 UIWebViewDelegate 中没有记录这种行为:

如果我向委托函数返回 NO

立即调用此函数并显示错误 101(无法加载此 URL。)。

既然我明确取消了请求,那么调用 didFailLoadWithError 是否正常?