我正在使用WKWebView打开example.com,在那里我有一个应该打开JS警报的测试链接,但我无法让它显示在设备上,它只有在我从浏览器查看网站。我正在使用WKUIDelegate,并将这段代码添加到ViewController.swift文件中:funcwebView(webView:WKWebView,runJavaScriptAlertPanelWithMessagemessage:String,initiatedByFrameframe:WKFrameInfo,completionHandler:(()->Void)){NSLog("Hello")}当我单击生成JS警报的
与UIWebView和之前版本的WKWebView(iOS10和macOS10.12)不同,本地文件的默认加载操作已从Bundle.main.path移动到Bundle.main.url。同样,loadFileURL也成为了WKWebView默认加载本地资源的函数。我知道.path和.url是完全不同的并且在过去都有效-.path历史上是默认的-选择的方法;然而,最新版本的Swift似乎已经破坏了大部分(如果不是全部的话).path解决方案。.path解决方案现在似乎扁平化目录层次结构,将所有CSS、JS和任何其他子目录内容放入一个大目录中。这会在WKWebView尝试加载index.
我有一个使用XCode7.2在Swift中开发的小型原型(prototype)应用程序。该应用程序被创建为带有Storyboard的基于Cocoa文档的应用程序。因此,该项目包含AppDelegate.swift,Document.swift和Main.storyboard,所有这些都与XCode生成的相同,并且ViewController.swift,其中包含:importCocoaimportWebKitclassViewController:NSViewController{varwebView:WKWebView{returnviewas!WKWebView}overridef
我有一个用于测试目的的网页(https://storage.googleapis.com/htmltestingbucket/nested_scroll_helper.html),它只打印html在固定标题中捕获的滚动事件的计数器当WKWebView是片段中唯一可滚动的元素时,一切都很好,WebView将滚动事件发送到页面如果我想在WebView的上方和下方添加原生元素,那么事情会变得更加复杂。UIScrollViewUILabelWKWebViewUILabel我知道在ScrollView中包含WebView不好,但我必须在html文档中提供具有混合内容和适当滚动事件的单一滚动体验。
我正在努力为我的浏览器应用程序添加一个新的阅读View。它是另一个ViewController,仅包含一个WKWebView添加为带有按钮(和手势)以关闭View的subview。一切正常,但是当我旋转设备时,subview没有调整大小,所以我有一半的屏幕是空的。阅读View中的WKWebView获取主视图Controller的URL,并在用户点击主视图Controller上的按钮后执行segue,该URL存储为webpageURL。这是我使用的代码:importUIKitimportWebKitclassReadingViewController:UIViewController,U
当我在谷歌上搜索并点击Etsy.com以获取exmaple时,WKWebView将我重定向到安装在我的iPhone上的Etsy应用程序。如何禁用此行为?我希望WKWebView将我重定向到etsy.com移动网站。我正在使用swift。 最佳答案 不幸的是,WKWebView不会将带有自定义方案的url发送回您的应用程序以自动处理。如果您在没有特殊处理的情况下尝试此操作,在用户通过第三方服务进行身份验证后,您的WebView看起来会挂起,您将永远不会收到回调。您可以尝试使用具有标准http或https方案的重定向URI,但随后WKW
在我的iOS应用程序中,我想使用WKWebView将外部URL包装在应用程序中。此URL需要基本身份验证(它需要用户和密码凭据,如以下屏幕截图所示)。经过一些调查,我正在尝试使用didReceiveAuthenticationChallenge方法来启用自动登录,所以我不明白它是如何工作的。这是我的代码。importUIKitimportWebKitclassWebViewController:UIViewController,WKNavigationDelegate{varwebView:WKWebView?privatevarrequest:NSURLRequest{letbase
当X-code尝试自动创建桥接header时,它每次都会崩溃,因此我按照有关如何手动创建桥接header的说明进行操作。(创建一个.h文件,命名为-Bridging-Header.h,导入你需要的所有.h文件?)问题是,当我尝试在包含在该header中的.swift文件中实例化一个类时,没有任何反应(它说该类不存在)此外,在桥接header中它似乎没有自动完成我的文件名,当我尝试包含它们时,让我相信某些东西没有正确链接。有没有人遇到过这个?有谁知道如何修复它? 最佳答案 您需要将其添加到目标的build设置中:在Xcode中,如果您
使用旧的UIWebView时,您可以通过实现自定义NSURLProtocol来捕获请求。我用它来处理需要身份验证的请求。我尝试了相同的代码,但它不适用于新的WKWebView,但我的协议(protocol)类根本没有被调用。有人遇到同样的问题还是有更好的方法使用WKWebView进行身份验证?在没有任何修改的情况下,我在decidePolicyForNavigationResponse委托(delegate)函数中得到了401响应。我还尝试使用NSURLConnection连接到服务器并使用NSURLConnectionDataDelegate处理身份验证。这行得通,但存储的凭据不会被
我使用WKWebView登录到一个网站,现在我想解析该网站的html。如何快速访问网站html?我知道它如何用于UIWebView但不知道WKWebView。感谢您的帮助! 最佳答案 如果您等到页面加载完成,您可以使用:webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",completionHandler:{(html:Any?,error:Error?)inprint(html)})您还可以注入(inject)一些返回HTML的jav