Tag: wkwebview

WKWebview同一页面内的锚点标签不会启动

我在我的iPhone应用程序中使用WKWebView显示的网页中有许多锚标签。 问题是,点击href标签不会把我带到相应的锚点。 这使用工作正常,当我使用UIWebView,但现在我已经迁移到WKWebView,它不工作。 我正在设置锚定标记如下,试图成为HTML5兼容: <a href="#Test1"> Test1. </a> <h2 id="Test1"> 当我在任何浏览器,HTML编辑器或XCode外部编辑器中显示网页时,锚点标记工作得很好,但不在WKWebView中。 这是精简的testingHTML(尽pipe它有很长的文本string): <!DOCTYPE HTML> <html> <head> <title> </title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style type="text/css"> .btt { font-size: 10pt; color: #000080; } </style> </head> <body> <h2 id="toc"> Table of Contents. </h2> <ul> <li> <a href="#Test1"> Test1. </a> </li> <li> <a href="#Test2"> Test2. </a> </li> <li> <a […]

如何捕获WKWebView忽略的水龙头

我有一个包含WKWebView的视图。 我的html内容是由我的应用程序生成的,所以我确定它绝对不会比屏幕宽,所以我在它的超级视图上使用UIGestureRecognizer来对左右滑动做出反应。 这很好。 我也想看看不在链接上的任何点击,所以我可以决定我可能想要做什么。 看来, WKWebView吸了所有的水龙头。 我试着要求它提供一系列的手势识别器,这样我就可以和他们build立一些合作关系,但是无论我什么时候问(无论是在创buildWKWebView之后,在加载了我的HTML文件之后,已完成加载)。 这是有道理的,如果WKWebView不使用UIGestureRecognizer机制,而是只是看着水龙头,而不是传递给他们,如果它不感兴趣。 任何想法获得访问WKWebView的不需要的水龙头?

com.apple.WebKit.WebContent丢失113错误:无法find指定的服务

我正在使用WKWebView查看自定义HTML。 无论HTML内容如何,​​在真实设备上testing时,我收到以下错误Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service WKWebView内容加载后29秒Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service ,有时甚至会收到此错误两次。 显然,这是一个configuration问题。 我已经检查了Cookie,build议在无法发信号服务com.apple.WebKit.WebContent ,但它没有帮助 另一个问题是,是否存在可能在WKWebView中popup的所有错误代码的列表

WKWebview评估JavaScript不工作,抛出一个错误

我正尝试从WKWebview的远程站点调用一个现有的函数: function addtext (text) { jQuery("#webviewtest").html(text); } 附: [self.WebView evaluateJavaScript:@"addtext(\"This is a text from app\");" completionHandler:^(id Result, NSError * error) { NSLog(@"Error -> %@", error); }]; 但是这是抛出一个错误: Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo=0x170c788c0 {NSLocalizedDescription=A JavaScript exception occurred} 这很简单! 我必须错过一些真正愚蠢的东西!

WKWebView和UIMenuController

我有一个WKWebView的应用程序。 在这个应用程序中,我定制了UIMenuController提供的选项。 networking视图似乎添加复制和定义选项菜单,不pipe我做什么。 如果我将自己设置为第一响应者,并返回NO,我仍然可以复制并定义选项。 而且我已经实现了自己的复制选项,根据用户的喜好和确切的select来做特殊的事情。 有没有办法删除这些额外的选项? 更新 :我已经提交了这个雷达18487289。

检测WKWebView何时完成加载

我有一个运行在iPad上的iOS8上的WKWebView应用程序(标准iPad UserAgent:“Mozilla / 5.0(iPad;像OS X的CPU OS 8_1_1)AppleWebKit / 600.1.4(KHTML,如Gecko)Version / 8.0 Mobile / 12B436 Safari / 600.1 0.4" )。 我已经尝试了所有可以考虑的代表和听众,以便每次检测页面何时完成加载。 这是问题: 打开你的WKWebView并去Google。 以下称为: _decidePolicyForNavigationAction _didStartProvisionalNavigation _ didFinishNavigation 在Google中input“YouTube”:仅调用_decidePolicyForNavigationAction。 没有didStartProvisionalNavigation或didFinishNavigation 在Google中点击YouTube。 以下称为: _didStartProvisionalNavigation _decidePolicyForNavigationAction _ didFinishNavigation 从现在起,在YouTube内没有任何东西被称为 。 点击一个YouTubevideo,并没有didStartProvisionalNavigation或didFinishNavigation。 另外,webview.loading观察者不再被调用。 即使决定PolicyForNavigationAction只是偶尔被调用。 但是,每次点击后, webView.backForwardList.currentItem更新,所以这必须检测何时页面加载完成? 这种行为也发生在很多其他网站上(例如Vimeo)。 我知道这种types的站点并不是每次都更新主框架,但是这种缺乏检测加载何时开始/完成WKWebView当前状态的“限制”的能力? 我想要实现的是:有没有另外一种方法来检测导航在YouTube / Vimeo等Java移动网站中每次都完成导航: 使用NSURLProtocol或类似的? 或者也许一种方法来检测webView.backForwardList.currentItem更新? 谢谢你的帮助。

WKWebView中的文本select:WKSelectionGranularityCharacter

我有一个使用Web视图的应用程序,可以select文本。 很长时间以来,你不能在UIWebView的块边界上select文本。 WKWebView似乎解决这个与它的configuration属性: selectionGranularity 。 其中一个可能的值是WKSelectionGranularityCharacter : select端点可以放置在任何字符边界。 听起来不错! 正是我需要的。 除了当我在我的网页视图上设置时,我经常不能再select文本。 到底是怎么回事? 还有什么我需要设置? 有没有人想过这个? 更新:我已经想出了以下的错误: 当selectionGranularity设置为WKSelectionGranularityCharacter的应用程序中存在多个WKWebView时,只有最近加载的才能select文本。 我已经提交这个错误18441138。 如果在其selectionGranularity设置为WKSelectionGranularityCharacter的WKWebView的HTML内容中有附加到body内部元素的click处理程序,则该文本select在该元素内不起作用。 我已经提交这个错误18440833。 在WKWebView中,在UITextView的某个位置进入编辑模式之后,文本select将失败,直到WKWebView重新加载。 我已经提交这个错误18468405。 有没有人在这些工作?

iOS 9 … WebView是免除应用程序传输安全例外(ATS)规则,阻止不安全的HTTP主机?

在iOS 9中,除非将特定主机列入白名单,否则Apple将阻止应用程序的不安全HTTP连接。 http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ 由于显而易见的原因,WebView是否免除这些规则,还是我们仍然期望将浏览器打开的主机列入白名单…包括给定页面的所有链接? 我不确定这是我们的责任还是免责。

在WKWebView中禁用放大手势

我正在寻找一种方法来禁用WKWebView的iOS实现上的“捏放大”放大手势。 有一个放大的BOOL属性可用于OS X,但它似乎并没有在iOS上可用。 WKWebView.h #if !TARGET_OS_IPHONE /* @abstract A Boolean value indicating whether magnify gestures will change the web view's magnification. @discussion It is possible to set the magnification property even if allowsMagnification is set to NO. The default value is NO. */ @property (nonatomic) BOOL allowsMagnification; 我也尝试着看看WKWebView的手势识别器,但是这似乎正在变成一个空arrays。 我假设实际的识别器在组件结构中有更深层次的保护(相当复杂,看起来相当复杂),如果可能的话,宁愿不去挖掘它们。 我知道可能的黑客,可能会禁用手势发射(有select地传递手势到WebView,添加子视图捕捉捏手势等),但我总是发现那些引入滞后的事件,并希望保持实现尽可能干净/免费。

如何确定一个WKWebView的内容大小?

我正在尝试在iOS 8和更新版本下运行时用WKWebView实例replacedynamic分配的UIWebView实例,而我找不到确定WKWebView内容大小的方法。 我的Web视图embedded在一个更大的UIScrollView容器中,因此我需要确定Web视图的理想大小。 这将允许我修改其框架以显示其所有的HTML内容,而无需在Web视图中滚动,我将能够为滚动视图容器(通过设置scrollview.contentSize)设置正确的高度。 我试过sizeToFit和sizeThatFits没有成功。 这是我的代码,创build一个WKWebView实例,并将其添加到容器滚动视图: // self.view is a UIScrollView sized to something like 320.0 x 400.0. CGRect wvFrame = CGRectMake(0, 0, self.view.frame.size.width, 100.0); self.mWebView = [[[WKWebView alloc] initWithFrame:wvFrame] autorelease]; self.mWebView.navigationDelegate = self; self.mWebView.scrollView.bounces = NO; self.mWebView.scrollView.scrollEnabled = NO; NSString *s = … // Load s from a Core Data field. [self.mWebView loadHTMLString:s baseURL:nil]; […]