Tag: JavaScript

如何检查iOS gui自动化中的元素属性?

我见过的所有UI自动化示例都使用标准组件,可以使用value()方法通过JavaScript API检查其状态。 这是有点限制。 比方说,你想检查颜色或alpha值和whatnot。 我如何检查视图的属性? 一个例子:点击某个元素应该使其“被选中”。 我想对它执行一次轻敲,然后validationisSelected是TRUE。 更新: 我发现了理论上应该做的withPredicate()方法,除了它似乎只触发name属性: element.withPredicate("isSelected == YES") // always fails element.withPredicate("name matches 'my element'") // works

WKWebView – Javascript确认和警报不起作用

我正在使用WKWebView来打开example.com,并在那里我有一个testing链接,应该打开JS警报,但我不能让它显示在设备上,它只有当我查看网站从浏览器。 我正在使用WKUIDelegate,并将这段代码添加到ViewController.swift文件中: func webView(webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: (() -> Void)) { NSLog("Hello") } 当我单击产生JS警报的链接时,我在XCode控制台中看不到任何东西。 我错过了什么?

cordova电话IOS应用程序Settings.Bundle可能吗?

所以我是新来的移动开发,但我接近完成我的第一个IOS应用程序使用HTML / CSS / JS和cordovaPhoneGap 3.我试图让用户提供通过iPhone本机“设置”应用程序的文本input(灰色齿轮图标)。 我的应用程序将在“设置”应用程序中有自己的设置部分,用户可以input特定的IP地址,然后我的应用程序将使用该部分。 到目前为止我发现的是,我可能需要安装一个PhoneGap插件,并需要添加一个settings.bundle root.plist文件: https://github.com/phonegap/phonegap-plugins/tree/DEPRECATED/iOS/ApplicationPreferences Phonegap 3.0 iOS7 ApplicationPreferences插件 https://developer.apple.com/library/ios/DOCUMENTATION/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html 不幸的是,我没有足够的经验足以使这个:/我希望有更多经验的有益的兽医可以把它弄清楚一点,并指出我在正确的方向: 我只是拿.h,.m和.js文件,把它们放在'plugins'和'www'目录中,或者我必须使用命令行'phonegap local plugin add htttps // github … '命令? 命令行选项不起作用。 这是因为github代码已被弃用? 我如何“在我的应用程序中引用插件”? 是只是将这个额外的行添加到我的index.html页面的正文,或者是有更多的?: <script type="text/javascript" src="applicationPreferences.js"></script> 对不起所有的新秀混乱..我只是为了我的生活找不到一个易于理解的指南,如何在网上任何地方做到这一点。 我相信在我之后会有很多这些相同的问题,所以我非常感谢帮助。 非常感谢。

如何防止Phonegap应用程序中的地理位置双重提示?

我为iPhone创build了一个PhoneGap应用程序,通过webview中的JavaScript使用地理定位。 当我第一次运行应用程序时,它会提示我允许此应用程序的地理位置。 当我点击“确定”,它会再次提示我有同样的问题,但这次它声明“index.html”想要使用地理定位的权限。 这是有道理的,因为iOS可能需要第一次允许应用程序本身的地理位置权限,第二次浏览器需要权限。 但是,由于不会带来很好的用户体验: 我怎样才能防止这种双重提示? (如果第二个提示可以被阻止,我就足够了)

点击两次后,无法在iOS上inputhtmlinput字段

我在iOS上遇到一个问题,我已经提出了一个小提琴: http://jsfiddle.net/Hk56Q/ 如果为任何触摸事件(touchstart / touchmove / touchend)添加了事件侦听器,如下所示: function onTouch( e ){}; document.addEventListener( 'touchstart', onTouch, false ); 导致input字段在iOS上具有以下行为: 第一次触摸:input获得焦点,用户可以正确input 随后的触摸(重点放在已经存在的字段):打字不再工作 在iPad和iPhone(模拟器和实际设备)上,我正在iOS 5,5.1和6上体验和testing此问题。 唯一的修复似乎是删除事件监听器来恢复input字段的正确行为(或实际上从不添加监听器): document.removeEventListener( 'touchstart', onTouch); 我还注意到,如果页面上有多个iframe,并且其中一个将侦听器添加到其文档,则会打破其他iframe的input字段。 小提琴在我的Android手机上正确行事。 任何想法为什么会发生? 或者如何让触摸事件的全局自定义事件处理程序,而不会打破iOS上的input?

使用PhoneGap HTML在iOS中自定义JavaScript警报

我的应用程序有几个JS警报,它似乎总是显示页面名称。 的index.html 有没有办法将index.html更改为我的应用程序的名称或自定义文本。 例: My App // Which replaces .index.html alert("I am an alert box!");

window.orientation在iOS和Android中返回不同的值

我在iPad (Safari浏览器)和Samsung Tab 2 (默认浏览器)上testing我的Web应用程序。 window.orientationchange在两个设备中返回不同的值。 $(document).ready(function() { window.addEventListener("orientationchange", centerLoginBox); window.addEventListener("load", centerLoginBox); }); function centerLoginBox() { if (window.orientation == 90 || window.orientation == -90) { //Landscape Mode $('#loginbox').css('margin-top', '20%'); alert(window.orientation); } else if (window.orientation == 0 || window.orientation == 180) { //Portrait Mode $('#loginbox').css('margin-top', '40%'); alert(window.orientation); } 在标签2中,警报对于横向模式抛出“0”和“180”,对于纵向模式抛出值“90”和“-90”( 在iPad中只是相反的行为 )。 这是iOS和Android的一些devise差异吗? 什么可能是这个问题的通用解决scheme?

从javascript调用objective-c方法

我做任何webView我想从JavaScript调用任何返回任何参数的客观c方法。 我尝试了很多方法,但不允许。 目标c方法在这里: – (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *URL = [request URL]; if ([[URL scheme] isEqualToString:@"donordialog"]) { // now we need to figure out the function part NSString *functionString = [URL resourceSpecifier]; if ([functionString hasPrefix:@"bloodTypeChanged"]) { // the blood type has changed, now do something about it. NSString *parameter = [functionString stringByReplacingOccurrencesOfString:@"bloodTypeChanged" […]

iOS 6 safari,setInterval不会被解雇

看来,如果我滚动window , window.setInterval不会附加/发生滚动正在发生或之后。 有没有其他人看到同样的问题? 我的意思是… 这可能是什么原因造成的? 我能做些什么来解决这个问题?

检测移动到移动Safari中的新标签

我有一系列打开popup窗口的页面(Mobile Safari中的新选项卡)。这些popup窗口中的每一个都需要知道它们是何时关注的。 在桌面上,我们使用window.onblur和window.onfocus来驱动这种行为。 但是,这些事件都不能在iPad上使用。 我也尝试了window.onpageshow和window.onpagehide ,似乎没有在正确的时间开火。 我有一个testingHTML文件: <html> <head> <script language="javascript"> console.log('Hello'); window.onblur = function(e) { console.log('blur'); }; window.onfocus = function(e) { console.log('focus'); }; window.onpagehide = function(e) { console.log('pagehide'); }; window.onpageshow = function(e) { console.log('pageshow'); }; </script> </head> <body> <a href="http://www.google.com" target="_blank">Click Me</a> </body> </html> 理论上,当你点击“Click Me”时,当出现新窗口时,你应该得到一个模糊事件。 但是这在移动Safari上不会发生。 onpagehide和onpageshow显示任何爱,他们只是帮助检测当你要closures标签。 我如何获得我在移动Safari浏览器中查找的行为? 有没有可能?