Tag: webkit

适当的触摸button行为MobileSafari

MobileSafari作为一个规则有不正确的HTMLbutton行为(不正确的含义:“不像一个iOS原生button”)。 正确的button行为如下: 用户触摸button:button高亮 用户拖动手指button:button变暗 用户将手指拖回到button中:button高亮显示 用户拖动手指button并释放:button不点击 MobileSafaributton突出显示当您触摸它们时,无论您移动到何处,都会保持突出显示状态,并且无论您释放它们的位置,都会点击(除非视图滚动,在这种情况下,即使您重新进入button,触摸也始终被取消)。 这个问题适用于所有可点击的东西,如链接(当-webkit-touch-callout设置为none )。 到目前为止,我只find了一个具有正确button行为的Web应用程序:Facebook。 看看他们的代码,看起来他们已经做了很多跳跃式的工作,以使其正常工作(手动跟踪所有的鼠标事件,而不是使用button)。 代码是密集的,使用标枪,我还不清楚所需的所有作品的作品。 我知道我有点开玩笑(因为如果这很容易,每个人都会这样做),但我仍然会问。 是否有任何通用的代码处理这个function? 有没有比反向工程Javelin更简单的解决scheme,即使它只适用于WebKit? (Javelin不太适合我的轻量级需求。)我的最终目标是embedded到本机应用程序中的UIWebView正确button行为,所以混合的JavaScript / ObjC解决scheme也是可以接受的(尽pipe没有混合的方法想到) 。

这是iOS的WebView用户代理的Facebook吗?

我正在浏览一些日志,试图解释一些“有趣的”行为,我看到一些用户通过类似于这个用户代理的方式来到我的应用程序: Mozilla/5.0 (iPad; U; CPU iPhone OS 5_1_1 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.1.1;FBBV/4110.0;FBDV/iPad2,1;FBMD/iPad;FBSN/iPhone OS;FBSV/5.1.1;FBSS/1; FBCR/;FBID/tablet;FBLC/en_US;FBSF/1.0] 如果我通过udger.com运行这个string,我得到以下结果: 这个屏幕快照和用户代理混淆了我,因为它说这是iPod和iPad的移动Safari。 我在用户代理的第一部分看到了iPad ,但是我也看到很多对FB,iPhone和iOS以及其他各种东西的引用。 我很好奇,如果这是一个由Facebook for iOS应用程序提供的“通用”用户代理,并且如果是iPad,或者它只是不够清楚,可以告诉?

在iOS / WebKit textarea中删除3个像素

我试图创build一个textarea ,看起来像一个div 。 但是,在iOS上有3个像素来自我无法删除的地方。 这是我的代码: <!doctype html> <title>Textarea test</title> <style> textarea, div { background: yellow; font: 13px arial; border: 0; padding: 0; border-radius: 0; margin: 0; -webkit-appearance: none; } </style> <div>test</div> <hr> <textarea>test</textarea> 这是这样呈现的(我放大): 如屏幕截图所示,文本之前有3像素,我想摆脱。 据我所见,这不是边际/填充或边界。 这发生在我的iPhone和iPad上,都运行iOS 4.3。 而且要清楚; 这三个额外的像素不会显示在我的桌面上的Safari / Firefox / Chrome上。 或者是我兄弟的Windows Phone。 编辑2011-08-10: 我刚刚在<input type=text>上testing了这个,并且出现了相同的“padding”,除了它是1个像素而不是3个。

ios的webkit touchend事件不发射?

我试图实现一个基于IOS的webkit的应用程序的菜单,其中用户触摸/点击并保存菜单button('.menu_item'),在子菜单打开(div.slide_up_sub_menu)500毫秒后,用户应该能够将他们的手指/鼠标滑动到子菜单项目并释放。 <li class="menu_item"> ASSET MANAGEMENT <div class="slide_up_sub_menu hidden_menu"> <ul class="submenu"> <li>Unified Naming Convention</li> <li>Version Control</li> </ul> </div> </li> 然后,应用程序应该能够检测touchend / mouseup事件发生在哪个子菜单项上。 我将一个touchstart事件绑定到菜单项,等待500ms,然后告诉子菜单显示。 当用户松开手指时,触发事件应该触发closures子菜单。 如果用户已经停止了对子菜单项的触摸,则应该检测到它。 目前,在桌面上的Safari中检测哪个子菜单项发生mouseup事件: $('ul.submenu li').live('mouseup', function(e){ console.log($(e.currentTarget)); //works on the desktop }); 但如果我使用touchend处理程序执行相同的操作,则无法在ipad上运行: $('ul.submenu li').live('touchend', function(e){ console.log($(e.currentTarget)); //never fires }); 如果我查找每个touchend事件,当我结束子菜单项的触摸时,可以获得对父子菜单项的引用: $(document.body).bind('touchend', function(e) { console.log($(e.target).html()); //logs ASSET MANAGEMENT }); 但没有提及子菜单项。 有没有人有任何想法,为什么touchend事件不被触发的子菜单项? 谢谢

WKWebKit JavaScript未连接到视图层次结构时执行

我想从UIWebView切换到WKWebView 。 在我的代码中,网页视图实例是在屏幕外创build的(没有附加到视图层次结构),并加载了URL。 加载完成后,网页视图会在单独的UIWindow中呈现给用户(如插页式广告)。 一切工作正常与UIWebView ; 但切换到WKWebView ,angular度的JavaScript代码行为意想不到的方式。 在做了一些研究之后,我发现当WKWebView实例没有附加到视图层次结构时,javascript定时器(和http加载器)被挂起:如果你启动了一个在分离的WKWebView中运行的javascript定时器 – 它不会直到Web视图被附加。 任何人都可以build议一个可能的解决方法(除了附加一个隐藏的Web视图的关键窗口,然后将其移动到另一个窗口)? 我已经创build了一个示例项目来演示这个问题(或者更可能是WebKitfunction) https://dl.dropboxusercontent.com/u/148568148/WebKitViewTest.zip testing应用程序加载一个JavaScript的网页调度计时器和加载http请求。 您可以使用开关来显示/隐藏Web视图(设置“隐藏”属性),并将其从视图层次结构中附加/分离。 如果Web视图被附加(隐藏或可见),并且您点击Load ,那么JavaScript工作正常:您可以看到success或failure警报对话框。 如果它被分离 – 定时器只会在附加到视图层次结构时触发(将“Detached”切换到“on”,点击“Load”,等待几秒钟,然后切换回“off”)。 您也可以从Safari Web Inspector中检查console.log 。 以下是testing网页源代码: <!doctype html> <html ng-app="project"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.js"></script> <script src="project.js"></script> </head> <body> <div id="simple" ng-controller="MyController" data-ng-init="callNotify(message);"> </div> </body> </html> 和javascript: angular. module('project', []). controller('MyController', ['$scope','notify', function ($scope, notify) { $scope.callNotify […]

如何提高UIWebView滚动性能?

我正在构build一个包含UIWebView的应用程序,其中包含大量的图像,CSS,embedded式video和JavaScript轻触处理程序。 滚动性能很差,我正在寻找最有效的方法来改善这种情况。 如果以下任何一个特性导致UIWebView滚动滞后? 还有什么其他因素可能会阻碍performance? 图片数量 我应该从用户滚动过去的时候从DOM中删除图像,如果他们向后滚动,将它们添加回来? 图像的大小 视网膜视图中的视网膜质量的图像会影响滚动性能比小版本更多吗? 图像缩放 提前调整图像大小会产生很大的影响,而不是依靠Web视图来根据width: 100%;声明进行缩放width: 100%; ? CSS 我已经避免了box-shadow ,但是还有其他一些CSS属性是否会对滚动性能产生负面影响? 如果有任何其他资源或工具可用于分析,我很乐意听到他们的消息。

包括iOS8的WebKit框架未通过validation

我正在使用WebKit框架的WKWebView,当试图提交到app store,我得到这个错误: Your app contains non-public API usage. Please review the errors, correct them, and resubmit your application. The app links to non-public libraries in Payload…: /System/Library/PrivateFrameworks/WebKit.framework/WebKit 如果我将部署目标设置为8.0,那么错误消失,但我也想支持iOS 7。 这个错误似乎是iOS7也有WebKit框架的结果,但当时它是私有的。 我想因此dynamic链接到WebKit库。 我怎样才能在XCode中做到这一点?

无法指示服务com.apple.WebKit.WebContent

我使用适用于iOS的Shopify Mobile Buy SDK,无法从他们的付款networking视图中获得回叫。 出于某种原因警告: 2016-11-25 21:17:25.945267 Drool[3328:799969] Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service 2016-11-25 21:17:25.977316 Drool[3328:799969] Could not signal service com.apple.WebKit.Networking: 113: Could not find specified service 2016-11-25 21:17:26.105947 Drool[3328:799969] [App] if we're in the real pre-commit handler we can't actually add any new fences due to CA restriction […]

如何使私人/自定义URL协议的jQuery GET / AJAX请求?

在Mac和iOS平台上, 可以通过自定义URIscheme/ NSURLProtocol与本机运行时进行双向交换 。 例如..要从一个本地的Objective-C方法请求一个NSImage ,你可以注册你的自定义处理程序(一个简单的string,在这里我用“ mycustomprotocol ”)与Webkit /你的WebView NSView ,并从JS调用它… var theURL = 'mycustomprotocol:///' + (textField.value); img.innerHTML = '<img src="'+theURL+'" id="string"/>'; 我会喜欢能够使用jQuery做请求,因为在这一点上,它比90年代风格的JS更为熟悉..但是据我所知,在网上, $.get和$.ajax只做http(s) 。 会喜欢的东西 javascript:document.location = 'mycustomprotocol://' 重写jQuery的URL处理? 当我谈到JavaScript的时候,我觉得这是一个愚蠢的行为,我相信这很容易做到。我相信这是整个jQuery移动框架是如何实现的(通过私有URI的)。所以,为什么没有什么在谷歌或所以呢,对吧? 我可以从我的姐姐朋友那里得到一些帮助吗?

iOS 9 -webkit-overflow-scrolling:touch`和`overflow:scroll`打破了滚动function

我正在开发一个web应用程序,我有一个div里面的iFrame隐藏,溢出的内容,我想滚动。 在iOS 9的Safari上添加-webkit-overflow-scrolling:touch; 到div(已经overflow-y: scroll;给滚动一个stream畅的感觉,它打破了,根本不滚动。 我知道这是一个已知的问题,但我还没有find与我的scheme相关的解决scheme:我有iFrames不仅仅是传输数据,他们实际上包含用户的内容。 方向并不重要,内容将始终需要滚动。