草庐IT

Wkwebview

全部标签

ios - WKWebView,获取所有cookie

我想从WKWebView获取所有cookie。为什么?我已经开始了一个使用基于网络的身份验证的项目。因此,我应该拦截cookie以确保用户已登录并用于其他一些目的。另一种情况-想象一下如果用户登录,然后他“杀死”应用程序-由于存储此cookiesession的一些延迟将丢失:(。Theproblemseemstobethatthecookiesarecachedandnotsavedouttoafileimmediately.(@Kemenaran来自here-下面的第5页)我试图捕获它们的地方-webView:decidePolicyForNavigationResponse:dec

ios - 是否可以保存WKWebview内容供离线阅读?

我需要保存加载到WKWebView上的内容以供离线阅读,包括图像。这样即使没有网络访问,用户也可以再次查看网页。WKWebView支持缓存吗?我该如何实现?《UIWebView网页缓存离线查看》的答案是针对UIWebview的,不是针对WKWebView的,所以是不一样的。而且我也知道我们可以为WKWebViewCache启用应用程序缓存,但它会使用将被拒绝的私有(private)API。 最佳答案 //Twowaysiknowsofar//1st:afterloadingthepagewhenuserisonline,getthe

ios - JS 在 Swift 中调用一个函数

我知道如何将消息从JS发送到原生IOSswift应用程序:funcuserContentController(userContentController:WKUserContentController!,didReceiveScriptMessagemessage:WKScriptMessage!){println("JavaScriptissendingamessage\(message.body)")}和JS:webkit.messageHandlers.callbackHandler.postMessage("HellofromJavaScript");我的问题:是否可以直接调用

ios - WKWebView 中 HTML 元素的位置

给定一个显示网页的WKWebView,我如何获得由特定css选择器识别的HTML元素的位置(在我的WKWebView的框架中)?例子这里高亮DIV的位置应该是(0,123)如果滚动HTML内容,同一个DIV的位置应该是(0,0)谢谢 最佳答案 这里的问题是WKWebView会缩放其内容的大小。在scrollView中找到元素框架的技巧是找出WKWebView将内容缩放了多少。您可以通过将ScrollView的内容大小与javascript返回的文档大小进行比较来找到此比例。以下是我能够在XCode8.3.2中运行的XCodeplay

javascript - 下载在 WKWebView 中加载的嵌入式 PDF

从url加载HTML5页面时,我在该页面的某处获取pdf,我必须下载该pdf或将其保存为base64。这是pdf在HTML代码中的位置。我不能简单地点击“src”URL并获取pdf。任何可以帮助我获取base64字符串或任何其他下载方法的JS? 最佳答案 这个问题有时会反问,但是,如果有人在使用WKWebView寻找swift解决方案来下载.pdf或文件管理器上的任何文件,这就是我最终的结果classWebPortalVC:UIViewController,WKNavigationDelegate,WKUIDelegate,UIDo

javascript - WebView 变白/空白

我正在使用WKWebView在我的应用程序中显示谷歌地图。这是网址:http://ec2-54-198-148-171.compute-1.amazonaws.com/map_question.html在App中显示WKWebView的代码如下:importUIKitimportWebKitimportFoundationclassMyMapController:UIViewController,UIScrollViewDelegate,WKScriptMessageHandler{varwebViewGeo:WKWebView?varWidgetView:UIView=UIView(

swift - 如何在 Swift 3/iOS 10 中创建一个大小合适的 WKWebView

我正在尝试向我的应用程序添加一个WKWebView,它占据了大约2/3的屏幕(在底部留有空间)。因为似乎没有办法将WKWebView添加到Storyboard中,所以我添加了一个常规的UIView。然后在我的viewDidAppear方法中,我尝试创建一个具有相同边界的WKWebView。这是一种合理的方法吗?我的代码是这样的:@IBOutletvarconversationView:UIView!overridefuncviewDidAppear(_animated:Bool){letwebView=WKWebView(frame:conversationView.frame)ifl

ios - 在 WebView 中显示 iTunes 链接(防止重定向)?

我想在UIWebView中显示iTunes链接,例如https://itunes.apple.com/us/album/burn-that-broken-bed/id1120162623?i=1120163074&uo=4问题是这些链接在浏览器中加载时会自动重定向到iTunes应用程序,而不是像我尝试做的那样在UIWebView中显示内容。我怎样才能(1)阻止重定向以便显示内容(2)是否有另一种方法来形成不会重定向的iTunes链接?(3)还有其他选择吗?更新:使用ThunderStruck代码的结果: 最佳答案 一个可能的解决方法

ios - 如何清除 WKWebView 的 WKBackForwardList?

看起来WKWebView的backForwardList是只读的,但我见过人们用一些非常神奇的方法来解决这个问题。我需要想办法清除WKWebView的历史记录。任何想法我怎么会这样?到目前为止,我已经尝试了一些失败的技巧:使用keyValue:forKey无效。使用C指针->无效。我见过人们谈论综合属性和扩展类,但我真的不知道它是如何工作的,也想不通。还有其他想法吗? 最佳答案 适用于iOS8~iOS11。objective-C#pragmaclangdiagnosticpush#pragmaclangdiagnosticignor

ios - 脚本消息处理程序不工作

我正在尝试注入(inject)自定义WebKit脚本消息处理程序。我的Controller已正确加载,View也已正确加载。然而,在JS端(从Safari控制台),window.webkit.messageHandlers是空的。知道为什么吗?我的应用程序使用的是iOS8.1,但即使升级到9.2,它也无法运行。importFoundationimportUIKitimportWebKitpublicclassFooController:UIViewController,WKScriptMessageHandler{privatevarwkWebView:WKWebView?public