我正在WKWebView中传递自定义标题.但是,在重定向方面,标题会随附新的. 例如,我在浏览器中输入了" myName",它将打开搜索结果,现在打印语句推荐人已更改" Referer":" https://www.google.com/" 如何在重定向上坚持自定义标题. in WKWebView, decidePolicyFor navigationAction: WKNavigationAction功能标头在重定向上进行更新. navigationAction.request.setValue("/App/app/iOS", forHTTPHeaderField: "Referer")不起作用 import WebKit class WKWEBViewController: UIViewController, WKNavigationDelegate { private var wkWebView: WKWebView! var load
以下是关于 wkwebview 的编程技术问答
我对以下代码遇到麻烦.它应该将本地HTML文件加载到WKWebView中. 它在我尝试过的任何模拟器上都可以正常工作(iOS 12/ios 13). 由于某种原因,我尚不明白,它在设备上不起作用. 相反,我得到了一个空白屏幕.使用Safari调试器调试WebView,显示页面为"大约:空白".它没有加载我的文件...为什么? 请注意,我已经通过手机下载应用程序容器并在那里检查了文件的存在... - (void)loadIndexConteneurWithHash:(NSString *)hash { NSString *fileName = @"index.html"; NSString *subpath = hash ? [NSString stringWithFormat:@"%@#%@", fileName, hash] : fileName; NSString *rootContainerDirectoryPath = [NSFil
我有一些html页面作为应用程序内帮助,我使用wkwebview向他们显示,其中包括一个"回"按钮goBack. 一切正常运行,除了后退按钮总是将您带到以前本地HTML页面的最顶端(而不是您单击的链接所在的页面的滚动位置),尽管如果您遵循其他链接,则可以正常运行远程内容并使用"返回"从一个远程页面到上一个远程页面. 我删除了所有额外的调试,例如邮政导航等,所以目前我只是打电话: [webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"help" withExtension:@"html"]]]; 然后只有[webView goBack]然后回到页面顶部.是否按照指向另一个内部HTML或外部页面的链接进行链接都没关系.但是,正如我说的那样,如果您按照指向外部页面的链接,然后是另一个外部页面,第一个背面将带您到第一个外部页面的正确位置. 有什
我有UIPageViewController在WKWebView的帮助下显示PDF.现在,我必须在上一个和下一个滑动之前预加载上一个和下一个PDF链接,以避免用户的加载时间. 我尝试在PageViewController中设置第一个ViewController时尝试将代码放置,但是当我尝试刷新viewDidLoad时,请再次调用viewDidLoad,然后重新加载. 我已经实现了以下方法: func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? func pageViewController(_ pageViewController: UIPageViewController,
使用wkwebview,连接到一个站点,该站点将在用户选择后将其重定向到另一个站点. didReceiveServerRedirectForProvisionNavigation之后出现以下错误: Error Domain=kCFErrorDomainCFNetwork Code=310 "(null)" UserInfo={_WKRecoveryAttempterErrorKey=, _kCFStreamErrorCodeKey=-2096, _kCFStreamErrorDomainKey=4} 这里没有什么真正的特殊情况.我只是想模仿野生动物园. 我也覆盖了以下内容: func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completion
目标是在WKWebView内包含的网页中调用回调函数. evaluateJavaScript当其参数包含newline字符时断开,这意味着回调函数永远不会被调用. 为什么这是? 当用户按下网页上的按钮时,调用 userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage). func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { let dict = message.body as! [String:AnyObject] let callback = dict["callback"] as! String // Fa
我知道标题很熟悉,但是答案不是! 这里的答案: 按钮onclick事件在iOS中不起作用,除非您离开应用程序并返回,然后它起作用 onClick不从事ios11 saffile"> saffile">在iOS上9不触发隐藏输入文件上的事件 onclick Event在iPhone上不起作用 单击事件,而不是在iOS上发射 如何使用jquery要单击iPhone Web应用程序中的事件 jquery click jquery click单击事件不起作用iOS javascript onClick onClick onClick nclick not ios 使OnClick在iPhone上工作 /2010/10/click_event_del_1.html /2010/09/click_event_del.html 对我不起作用,因此在将这个问题重复标记之前,请检查我的代码: 这是html:
如果wkwebview终止了应用程序在前景中运行时,则 将在其代表上被调用. 但是如果该应用在后台? 会发生什么? 它仍然会立即收到回调吗?当应用程序稍后预先登上时,它会收到它吗?它根本不运行吗? i当前不知道 要触发终止 - 否则我只会尝试. 我要问,因为我想重新加载终止的网络视图,该视图终止了我的应用程序中的空白屏幕,但是我不确定这是否真的可以与在后台运行的应用程序一起使用. 解决方案 如果您正在运行模拟器,则可以从命令行杀死Web内容过程,以触发webViewWebContentProcessDidTerminate调用: # In the command line, find the PID of your simulator process: ps -p `pgrep launchd_sim` # or if you have many simulators running: ps -A | grep launchd_sim # Find
我将我的应用程序从UIWebView迁移到ios8.x(维持ios7.x)用户的WKWebView,并且我在显示的网站上遇到了麻烦,因为旋转iPad后,它将显示内容但背景似乎某种方式裁剪了,因此BG之后有空白. 但是,我一开始滚动网站,它就会自动修复.当我从景观传递到肖像方向时,这种空白效果也会发生,这使网站的右侧具有空白. 这是我尝试解决问题的方式: (void)willRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration (NSTimeInterval)duration { [self.view setNeedsUpdateConstraints]; [_webView setNeedsUpdateConstraints]; } (void)didRotateFromInterfaceOrientation:(UIInterface
我有一个要求添加WKWebView向后动作的观察结果. WKWebView与调用我的方法相比,向后执行后退.我该如何执行? 检查WKWebView如何做反作用或向前操作? 用户在WKWebView上做了多少次?我该如何获得这个计数? 解决方案 WKNAvigationDelegate协议的方法可帮助您实现Web视图中接受,加载和完成导航请求过程中触发的自定义行为. 您可以使用该委托方法: webView(_:decidePolicyFor:decisionHandler:) 实施就像: if(navigationAction.navigationType == .backForward) { if navigationAction.request.url != nil { //do what you need with url. If Your URL is last vis
我在WebView中使用IFRAME打开YouTube视频.它显示了视频的默认控制按钮,包括全屏按钮.如何单独调用全屏按钮的功能?例如,我想在景观上转到全屏,但是视频只能通过全屏按钮或首次加载时按全屏打开.我需要在播放视频时去全屏. 解决方案 我找到了功能. Webkit的视频标签中有webkitEnterFullScreen: webkitjs/htmlvideoelement 所以我只需要通过JavaScript获得视频和执行功能: playerView.webView?.evaluateJavaScript("document.getElementById('player').contentDocument.getElementsByClassName('video-stream')[0].webkitEnterFullScreen()") { object, error in print(error) } 其他解决方案 希望您正在将YTPL
我的应用程序使用wkwebview来显示HTML字符串. wkwebview嵌入在scrollview中,因为我还有其他几个元素(例如按钮,tableviews).因此,我需要计算wkwebvview内容的大小,为此,我使用esturejavascript(" document.body.scrollheight",postermionhandler:methot. 每当我将Tweet嵌入HTML字符串中时,内容高度就会错误地计算出来,并且我的WebView削减了其高度. html字符串的一部分,带有推文嵌入的外观如下:
#SYRIA Admiral Essen frigate launched
我想使用Swift 4,Xcode 9在WKWebView中隐藏某些HTML元素.我知道如何在Android中进行操作,并在下面添加了代码.我只需要在wkwebview中为swift 4中的iOS代码. myWebView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { myWebView.loadUrl("javascript:(function() { " + "document.getElementById('divHeader') [0].style.display='none'; " +
我尝试使用wkwebview播放从YouTube内联嵌入的视频.但是,我无法解决这个问题,因为当我单击播放时,我的视频仍然会自动进入全屏.我已经花了几个小时了,但是我仍然找不到解决方案.请感谢您的帮助.这是我的代码: @IBOutlet weak var myPlayer: WKWebView! override func viewDidLoad() { super.viewDidLoad() let videoId = "9n1e1N0Sa9k" if let mediaURL:URL = URL(string: "https://www.youtube.com/embed/\(videoId)?playsinline=1") { let request:URLRequest = URLRequest(url: mediaURL) myPlayer.load(request) } } 解决方案 这是您想要的解
我有一个wkwebview,我将在选项卡之间切换,以加载不同的URL,例如URLL1,URL 2和URL 3. 考虑场景: 在带有URL 1的第一个选项卡中,单击链接或执行操作,然后使用URL 2转到第二个选项卡. 回到URL 1的第一个选项卡时,我需要完全从我关闭的位置加载网页. 解决方案 在架构上,为每个选项卡分配一个WKWebView会更有意义,并在更改选项卡时加载相关的URL.您可以使用: 拦截导航 (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler; 并从WKNavigationAction对象获取请求.使用在另一个wkwebview中加载URL的请
我有此代码: - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { [webView evaluateJavaScript:@"document.readyState" completionHandler:^(id _Nullable complete, NSError * _Nullable error) { if (complete != nil) { [webView evaluateJavaScript:@"document.body.offsetHeight" completionHandler:^(id _Nullable height, NSError * _Nullable error) { lastWebViewHeight = [height doubleValue]
我有一个wkwebview应用程序,在显示的网页上有一个文件条目,应在其中拍照.每当我按下输入应用程序关闭时,在Android中,我都设法解决了一些权限,但是在iOS中,我没有经验. 我该怎么办?这个打开相机的按钮位于已上传到WKWebView的网站中. 我的代码 // // ViewController.swift import UIKit import WebKit class ViewController: UIViewController, WKNavigationDelegate{ @IBOutlet weak var webView: WKWebView! // Inicio Atividade override func viewDidLoad() { super.viewDidLoad() // Oculta Navbar self.navigationCon
我使用WKWebView在我的Xcode项目中渲染局部index.html文件.问题是,该文件中的HTML和CSS代码已成功显示在WebView内部,但是javaScript> javaScript dy by be dy by be dy by be dy by be be. 我在Stackoverflow上搜索了类似的问题,我想到的是,Apple不会在本地HTML文件中执行JS,并且为了执行JS,我需要使用GCDWebServer使用本地Web服务器. . 说实话,我是Hole Web服务器概念的新手,我发现很难弄清楚如何在本地网络服务器中运行HTML以及如何使用GCDWebServer进行此操作. 在WKWebView内部的本地服务器上运行我的index.html文件的简单方法是什么? 这是我的代码: override func viewDidLoad() { super.viewDidLoad() let resourceUrl = B
我正在创建一个SDK,以从用户和加载中获取URL.因此,用WKWebview创建自己的课程.但是我对实例成员webView的问题很少. 我的代码: import Foundation import WebKit public class MyWebView: UIView, WKNavigationDelegate { // initialize the view var webView: WKWebView! // get the url and load the page public func passUrl(url: String) { guard let url = URL(string: url) else { return } webView = WKWebView() webView.navigationDelegate = self webView.load(
我想使用简单的WKWebView从iOS上的PWA制作应用程序.我设法在简单的ViewController中实现了它,并且正常工作. 问题:当我登录然后退出应用程序时,会话丢失,我必须再次登录. 问题:用户退出应用程序后是否可以保留会话信息? ? 预先感谢您的回答! 解决方案 您需要研究持续的会话数据.对于WKWebView,所有这些都是WKProcessPool的一部分.因此,当您的应用进入后台时,您需要研究持续WKProcessPool会话,并且当您使用Web视图时,请始终使用相同的WKProcessPool实例. 这是一个可以帮助您将数据保存到UserDefaults的答案. https://stackoverflow.com/a/a/52109021/2658489 其他解决方案 我认为您应该在本机应用程序上实现登录API,授权和登录UI,然后您可以使用单个WKWebView Controller拥有仪表板项目. 用户使用本机页面登录-