我有一个带有WKWebView的应用程序。在此应用程序中,我自定义了UIMenuController中显示的选项。无论我做什么,WebView似乎都会向菜单添加复制和定义选项。如果我将自己设置为第一响应者并为所有内容返回NO,我仍然会获得复制和定义选项。我已经实现了我自己的复制选项,它根据用户偏好和确切选择的内容执行特殊操作。有没有办法删除这些额外的选项?更新:我已将其归档为雷达18487289。 最佳答案 对于iOS11,只需继承WKWebView并覆盖canPerformAction以返回false:classWebView:W
是否有推荐的方法在进入后台时暂停或停用我的WKWebView?我在WebView中呈现复杂的JavaScript图表,不希望它们在后台泄漏内存。处理此问题的最佳方法是什么?然后我必须重新初始化整个WKWebView还是只重新初始化JavaScript?感谢您的帮助或指导。 最佳答案 根据我的经验,进入后台时不需要做一些特定的工作,因为所有重量级的工作都发生在web-process中,WKWebView只是用于渲染。但是,网络进程可能会因内存压力而关闭;您需要通过实现WKUIDelegate的方法来处理它并恢复状态:-(void)we
我的网站附有一个文件上传系统,它在移动safari上运行完美。我可以访问iCloud、PhotoLibraray和相机。然而,在我将它实现到我们的移动应用程序的wkWebView中后,上传系统不再有效。当我加载wkWebView并单击按钮时,它会显示我要从中获取文件的选项。我选择PhotoLibrary,它关闭了webview并带我回到我的第一个viewController。这是网页View代码://CameraAVCaptureDevice.requestAccess(forMediaType:AVMediaTypeVideo){responseinifresponse{//acce
在我的应用程序中,我想打开一个网站。早些时候我在Swift3.0中使用了UIWebview并且一切都很好。但是当我读到WKWebview应该现在使用时,使用WKWebview网站不会显示在应用程序中。我很困惑,网站使用UIWebview而不是WKWebview的原因可能是什么。我尝试了其他几个网站,它们在UIWebview和WKWebview上都运行良好。有人可以建议这里可能是什么问题吗。另外,如果我使用UIWebView,我的应用会被拒绝吗?下面是我正在使用的来自Apple的示例代码。importUIKitimportWebKitclassViewController:UIViewC
我想为WebKitView中的嵌入式YouTube视频禁用自动播放。当我第一次打开View时,视频最初不会播放,但如果我在我的导航Controller中切换到另一个View,然后切换回该View,如果之前已启动,视频将开始全屏播放。overridefuncviewDidLoad(){super.viewDidLoad()letyoutubeURL=URL(string:"https://www.youtube.com/embed/KUh2O8HylUM")letrequest=URLRequest(url:youtubeURL!)videoPlayer.load(request)//D
在swift4中将网页加载到WKWebVIew时,我想从我的网页中删除页眉和页脚div标签。我尝试了以下代码。但它不工作..给我解决方案!classViewController:UIViewController{@IBOutletvarwebView:WKWebView!overridefuncviewDidLoad(){super.viewDidLoad()varurl:URL?url=URL(string:"https://www.walkmate.co.in")letrequest=URLRequest(url:url!)webView.load(request)letscrip
有没有办法在不同的webView完成加载时发生不同的操作?如果我有webView1和webView2,我如何创建两个独立的webView(_webView:WKWebView,didFinishnavigation:WKNavigation!)函数,得到单独调用其中一个webViews完成加载? 最佳答案 WKNavigationDelegate或任何协议(protocol)的方法每个类只能继承一次,但您可以轻松找出从哪个实例调用委托(delegate)方法,如下所示:classYourClass:WKNavigationDeleg
我有一个WKWebView来加载一个网站,该网站具有使用WKURLScheme实现的自定义url方案(mycustomurl://),网站将使用GET调用该方案。当网站位于http://时一切正常,但当我切换到https://时出现以下错误并中断:[blocked]Thepageathttps://(urlsnipped)wasnotallowedtodisplayinsecurecontentfrommycustomurl://(urlsnipped).WKURLScheme回调从未被触发,所以我怀疑Safari或更强大的功能阻止了它:/我已经梳理了关于ATS的SO讨论,但没有一个有
我正在运行一个使用WKWebView的网络应用程序,它从名为Web_Assets的Bundle目录加载内容和Assets(html、js、img、css...)。我这样加载index.html,并将Web_assets设置为baseURL:ifletfilePath=Bundle.main.path(forResource:"index",ofType:"html",inDirectory:"Web_Assets"){lethtml=tryString(contentsOfFile:filePath,encoding:.utf8)webView.loadHTMLString(html,
我想知道是否可以阻止WKWebView显示位置权限提示?(“website.com”想使用您的当前位置)我相信它正在显示,因为该网站包含谷歌地图。我对在其他SO问题中显示的位置预加载位置不感兴趣。我只是不想在WKWebView中使用位置。有没有办法阻止位置权限提示出现?我已尝试注入(inject)以下javascript,但它不起作用。letcontentController=WKUserContentController()letscriptSource="navigator.geolocation.getCurrentPosition=function(success,error,