问题标签 [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.
ios - iOS - 在 UIWebView 中加载 PDF,然后使用 UIDocumentInteractionController 保存到 iBooks
我正在使用 UIWebView 从 Web 加载 PDF,效果很好,让我可以按照自己的方式与 PDF 进行交互。
接下来我希望能够将该 PDF 保存到 iBooks,所以我使用的是 UIDocumentInteractionController。在阅读文档时,您似乎只能将 UIDocumentInteractionController 与本地文件一起使用,而不是像我一样使用远程文件。
我的问题是,UIWebView 加载的 PDF 必须缓存在某个地方,所以我真的必须再次调用来下载同一个文件,只是为了让 UIDocumentInteractionController 能够将它作为本地文件加载?或者我可以以某种方式使用 UIWebView 已经加载的同一个文件吗?
iphone - UIWebView 不会随多个选项卡应用程序一起旋转
我正在使用 UIWebView 在 iPhone 上显示 PDF 和 Word 文档。我希望它们在设备方向改变时自动旋转。为此,我添加了以下委托方法。不过有些奇怪的事情正在发生。当我只有一个具有 UIWebView 的选项卡时,它工作正常。它可以很好地加载文档并且也可以完美旋转,但是当我添加另一个选项卡时,它不会旋转..!在调试时我可以看到,当我有两个表时,它只接收 UIDeviceOrientationLandscapeRight 和 UIDeviceOrientationLandscapeLeft 的旋转事件。任何人都可以帮我摆脱这个。
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES;
}
谢谢。
objective-c - 多个 UIWebViews,我如何跟踪两者的 webViewDidFinishLoad?
我试过了:
错误是我无法重新定义相同的方法。
如果我必须使用相同的方法,我需要找出某种方法来识别另一个 webView,我该怎么做?
干杯
objective-c - 当 UIWebView 打开 PDF 时 webViewDidFinishLoad 未触发
这是我的代码:
}
基本上,它的作用是从我的 UIWebView webView 中检测 PDF 链接并将其加载到另一个 UIWebView pdfViewer(在名为 topView 的视图上找到)。然后我有一个功能如下:
对于 pdfViewer web 视图,上述函数根本不会触发,但对于 webView web 视图会触发。我该如何解决?
这是我在 viewDidLoad 方法上对两个 webView 的设置设置。
iphone - 在同一个 ViewController 上为多个 UIWebView 设置委托
我有两个 UIWebView,一个用于处理普通文件,一个用于处理 PDF(作为覆盖打开,位于另一个 Web 视图之上)。
两个 webview 的设置如下:
该行pdfViewer.delegate = self;
给我的应用程序带来了一些麻烦。我有一个我正在使用的委托方法webViewDidFinishLoad
,所以我需要delegate
两个视图的self
. 如果未设置,即我将其注释掉。PDF 在视图中加载,但webViewDidFinishLoad
不会触发,如您所料。但是,如果我重新激活该行,PDF 根本不会加载到视图中。是否发生了某种冲突?我可以分配多个UIWebViews
delegate = self
吗?
更新:
iphone - iPhone:笔尖文件+代码=混合
我对何时应该使用 NIB 文件以及何时应该使用代码感到有些困惑。这是我的问题:
我有一个带有 RootController 及其 NIB 文件的基于导航的应用程序。RootController 的 NIB 文件包含一个 TableView。当我单击一个单元格时,我会使用加载内容的请求初始化一个新连接。当连接完成加载后,我从 NIB 文件创建一个新的 postViewController(自定义),然后将其推送到 navigationController viewController 堆栈上,如下所示:
然后,如您所见,我尝试将 rootViewController 设置为 webView 的委托,以便能够拦截对链接的单击并将新的 ViewController 推送到堆栈上。我需要那个新视图来拥有带有后退按钮的导航栏。
问题:看起来 setDelegate 不起作用,因为 webView:shouldStartLoadWithRequest:navigationType 永远不会被调用!
我想我应该在 NIB 文件中设置委托,但我不知道如何。PostViewController 中的 NIB 文件不知道 RootViewController...
以下是 NIB 文件的屏幕截图:
如果您需要更多详细信息,请询问我。
非常感谢......帮助我不再敲我的头一天:)
objective-c - 识别 UIWebView 文件类型
我希望检测何时单击 PDF 并将其显示在单独的 UIWebView 中。这是我目前拥有的:
这工作正常。但是它确实有一个明显的缺陷:
“http://www.example.com/ikb3987basd”呢?
如何识别没有扩展名的文件类型?是否有一些关于我可以检查的文件的数据?
iphone - iPhone - 如何让自定义浏览器能够检测是否需要启用/禁用后退/前进按钮
大家好!我有一个正在开发的 tumblr 应用程序,并且我有一个按钮,用于推送一个模式视图,该视图包含一个 web 视图和一个底部的工具栏,带有刷新、后退、前进和完成按钮。后退和刷新按钮有效,但是我希望能够判断 webview 是否真的可以后退/前进,如果没有,请禁用按钮。我尝试了下面的代码,图像和启用/禁用更改.
任何建议将不胜感激!
uiwebview - UIWebView 支持内部(停留在 webview)和外部(safari)链接
我有一个充当电子书的 ipad 应用程序。它基本上是一堆链接在一起的html页面。我还有一些在 webview 中打开的外部链接,但我现在想在 Safari 中打开。
我已经实现了这个方法:
现在我的外部链接和我的 Archor 导航标签都可以工作了(出于某种原因):
但我的内部链接不再起作用:
有没有一种方法可以更改我的内部(或外部)链接以将其中一个或另一个指定为 UIWebViewNavigationTypeOther?我该怎么做呢?理想情况下,如果我更改了任何 html,外部链接就会少很多。
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