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

ios - iOS - 在 UIWebView 中加载 PDF,然后使用 UIDocumentInteractionController 保存到 iBooks

我正在使用 UIWebView 从 Web 加载 PDF,效果很好,让我可以按照自己的方式与 PDF 进行交互。

接下来我希望能够将该 PDF 保存到 iBooks,所以我使用的是 UIDocumentInteractionController。在阅读文档时,您似乎只能将 UIDocumentInteractionController 与本地文件一起使用,而不是像我一样使用远程文件。

我的问题是,UIWebView 加载的 PDF 必须缓存在某个地方,所以我真的必须再次调用来下载同一个文件,只是为了让 UIDocumentInteractionController 能够将它作为本地文件加载?或者我可以以某种方式使用 UIWebView 已经加载的同一个文件吗?

0 投票
1 回答
651 浏览

iphone - UIWebView 不会随多个选项卡应用程序一起旋转

我正在使用 UIWebView 在 iPhone 上显示 PDF 和 Word 文档。我希望它们在设备方向改变时自动旋转。为此,我添加了以下委托方法。不过有些奇怪的事情正在发生。当我只有一个具有 UIWebView 的选项卡时,它工作正常。它可以很好地加载文档并且也可以完美旋转,但是当我添加另一个选项卡时,它不会旋转..!在调试时我可以看到,当我有两个表时,它只接收 UIDeviceOrientationLandscapeRight 和 UIDeviceOrientationLandscapeLeft 的旋转事件。任何人都可以帮我摆脱这个。

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES;

}

谢谢。

0 投票
3 回答
1381 浏览

objective-c - 多个 UIWebViews,我如何跟踪两者的 webViewDidFinishLoad?

我试过了:

错误是我无法重新定义相同的方法。

如果我必须使用相同的方法,我需要找出某种方法来识别另一个 webView,我该怎么做?

干杯

0 投票
1 回答
2433 浏览

objective-c - 当 UIWebView 打开 PDF 时 webViewDidFinishLoad 未触发

这是我的代码:

}

基本上,它的作用是从我的 UIWebView webView 中检测 PDF 链接并将其加载到另一个 UIWebView pdfViewer(在名为 topView 的视图上找到)。然后我有一个功能如下:

对于 pdfViewer web 视图,上述函数根本不会触发,但对于 webView web 视图会触发。我该如何解决?

这是我在 viewDidLoad 方法上对两个 webView 的设置设置。

0 投票
1 回答
3053 浏览

iphone - 在同一个 ViewController 上为多个 UIWebView 设置委托

我有两个 UIWebView,一个用于处理普通文件,一个用于处理 PDF(作为覆盖打开,位于另一个 Web 视图之上)。

两个 webview 的设置如下:

该行pdfViewer.delegate = self;给我的应用程序带来了一些麻烦。我有一个我正在使用的委托方法webViewDidFinishLoad,所以我需要delegate两个视图的self. 如果未设置,即我将其注释掉。PDF 在视图中加载,但webViewDidFinishLoad不会触发,如您所料。但是,如果我重新激活该行,PDF 根本不会加载到视图中。是否发生了某种冲突?我可以分配多个UIWebViews delegate = self吗?

更新:

0 投票
2 回答
235 浏览

iphone - iPhone:笔尖文件+代码=混合

我对何时应该使用 NIB 文件以及何时应该使用代码感到有些困惑。这是我的问题:

我有一个带有 RootController 及其 NIB 文件的基于导航的应用程序。RootController 的 NIB 文件包含一个 TableView。当我单击一个单元格时,我会使用加载内容的请求初始化一个新连接。当连接完成加载后,我从 NIB 文件创建一个新的 postViewController(自定义),然后将其推送到 navigationController viewController 堆栈上,如下所示:

然后,如您所见,我尝试将 rootViewController 设置为 webView 的委托,以便能够拦截对链接的单击并将新的 ViewController 推送到堆栈上。我需要那个新视图来拥有带有后退按钮的导航栏。

问题:看起来 setDelegate 不起作用,因为 webView:shouldStartLoadWithRequest:navigationType 永远不会被调用!

我想我应该在 NIB 文件中设置委托,但我不知道如何。PostViewController 中的 NIB 文件不知道 RootViewController...

以下是 NIB 文件的屏幕截图:

RootViewController.xib

PostViewController.xib(文件所有者)

PostViewController.xib(网页视图)

如果您需要更多详细信息,请询问我。

非常感谢......帮助我不再敲我的头一天:)

0 投票
3 回答
2453 浏览

objective-c - 识别 UIWebView 文件类型

我希望检测何时单击 PDF 并将其显示在单独的 UIWebView 中。这是我目前拥有的:

这工作正常。但是它确实有一个明显的缺陷:

“http://www.example.com/ikb3987basd”呢?

如何识别没有扩展名的文件类型?是否有一些关于我可以检查的文件的数据?

0 投票
2 回答
2144 浏览

iphone - iPhone - 如何让自定义浏览器能够检测是否需要启用/禁用后退/前进按钮

大家好!我有一个正在开发的 tumblr 应用程序,并且我有一个按钮,用于推送一个模式视图,该视图包含一个 web 视图和一个底部的工具栏,带有刷新、后退、前进和完成按钮。后退和刷新按钮有效,但是我希望能够判断 webview 是否真的可以后退/前进,如果没有,请禁用按钮。我尝试了下面的代码,图像和启用/禁用更改.

任何建议将不胜感激!

0 投票
0 回答
948 浏览

uiwebview - UIWebView 支持内部(停留在 webview)和外部(safari)链接

我有一个充当电子书的 ipad 应用程序。它基本上是一堆链接在一起的html页面。我还有一些在 webview 中打开的外部链接,但我现在想在 Safari 中打开。

我已经实现了这个方法:

现在我的外部链接和我的 Archor 导航标签都可以工作了(出于某种原因):

但我的内部链接不再起作用:

有没有一种方法可以更改我的内部(或外部)链接以将其中一个或另一个指定为 UIWebViewNavigationTypeOther?我该怎么做呢?理想情况下,如果我更改了任何 html,外部链接就会少很多。

0 投票
2 回答
10123 浏览

iphone - UIWebView 和超时

我正在使用 aUIWebView来显示一些内容。在此内容中,用户可以浏览一堆正在使用 AJAX 加载的网站。在这个网站上迈出一步需要相当长的时间。因为我没有找到任何关于 timeoue 的信息,UIWebView所以我试图将它设置为NSURLRequest它加载的初始值。

不幸的是,这似乎没有任何作用。我不太确定我是否应该自己设置超时?有什么我想念的吗?是否UIWebView覆盖我的超时?我对此有点困惑,所以任何帮助将不胜感激。:)

最佳
-f

更新

我建立了一个测试项目来验证我关于UIWebView超时如何工作的“理论”。这是设置:

  • 一个名为 sleep.php 的 PHP 文件,它有一个参数,我可以使用该参数配置睡眠时间,直到它发送结果
  • 一个带有单个视图的小 Xcode 项目,它是一个加载 sleep.php 的 webView,如下所示:

    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:10]; [webView loadRequest:request];

因此,在使用 seconds 参数时,我可以看到UIWebView它应该正常工作。我得到webViewDidFinishLoad:webView:didFailLoadWithError:取决于超时。

在验证了timeoutInterval广告中的作品后,我引入了一个 proxy.php(它有两个指向 sleep.php 的链接,配置为 5 秒和 15 秒),以查看我的请求配置对于新请求是否仍然有效。我将初始设置更改NSURLRequest为使用 proxy.php,但将 10 秒配置用于超时。

当我现在启动应用程序时,将显示两个链接。当我单击第一个时,它会在 5 秒后按预期加载。不幸的是,第二个链接也在 15 秒后加载。

所以我第一次尝试重新配置NSURLRequest将是在webView:shouldStartLoadWithRequest:navigationType:. 不幸的是,Web 服务与 AJAX 一起工作,因此不会调用委托方法。

还有其他建议吗?有没有办法全局配置整个超时值UIWebView

最佳
-f