Articles of JavaScript

我怎样才能生成一个apk可以运行没有服务器与反原生?

我已经构build了我的应用程序,我可以在我的本地模拟器上运行它(也可以通过更改debugging服务器在我的android设备上运行)。 但是,我想要构build一个apk,我可以发送给没有访问开发服务器的人,我希望他们能够testing应用程序。 我看到有一节在文档的iOS部分使用脱机包。 但我无法弄清楚如何完成相同的android。 这可能吗? 如果是这样,怎么样? 更新:在这个问题的答案( 反应原生android未能加载JS包 ),据说离线包可以从开发服务器下载。 但是,当我从开发服务器获得捆绑的图像文件不能被加载。

Android浏览器的screen.width,screen.height&window.innerWidth&window.innerHeight是不可靠的

我正在开发针对桌面,平板电脑和智能手机浏览器的networking应用程序。 Web应用程序有一个使用Colorbox和iframe实现的灯箱 。 当浏览器窗口resize或平板电脑改变方向时,Javascript代码将查询窗口尺寸,以便调整灯箱的某些元素。 我遇到的问题是,桌面上的一切工作正常(Windows:IE,Firefox,Chrome,Mac:Safari),iPad和iPhone,但不是在Android智能手机(HTC)和Android模拟器。 在window.innerWidth & window.innerHeight当窗口的resize事件被多次触发时,它们总是返回不同的值给screen.width , screen.height , window.innerWidth & window.innerHeight 。 为什么Android浏览器会返回如此大的数值差异,我如何可靠地检测浏览器窗口的宽度和高度?

HTC Android设备上的Javascript console.log()和adb logcat

我正在开发HTML中的应用程序,它调用Javascript中的console.log()来在开发过程中为我提供有关网页代码中发生的事情的日志。 不幸的是,当我使用adb logcat命令来检查日志时,我可以看到来自所有其他应用程序的输出,而不是来自JavaScript代码的输出。 我甚至可以在浏览器中看到页面加载的日志,而不是从Web浏览器中执行的JavaScript代码输出console.log() 。 根据此页面上的信息( http://developer.android.com/guide/webapps/debugging.html )它应该工作。 我正在testingHTC WildFire和HTC Desire HD 。 经过6个多月的编辑 经过一段时间和不同的设备(手机,电视机,机顶盒,WebViews,UIWebViews …)的经验,我的build议是做从JavaScript的远程日志logging ,而不是依靠console.log()或其他方法 – 请参阅在这里加载图片的不错技巧。 不要错过这里的介绍希望这有助于! 斯登

在android模拟器调用JavaScript与phonegap

我是phonegap和android开发新手。 我可以知道如何在模拟器上debuggingjavascript错误吗? 我听说过亚行可能知道如何在Windows 7系统上使用和安装它? 我有一个jsonp调用ajax但没有模拟器上的响应。 不过,我可以在Windows上用浏览器调用ajax。 我可以知道哪里出了错?

在Android上强制使用正确的CSS3转换百分比解释

医生 在Android Chrome和默认浏览器中,获取以下链接中显示的机制以performanceGPU加速。 更新2 (2014-01-13 13:25:30Z):根据下面的bref.it的评论,报告的行为是固定的Android 4.4 KitKat – 但我下面描述的修复现在打破了! 草地的法律。 UPDATE 1 (2012-11-01 17:54:09Z):马车行为是可以从变换matrix推导出来的,这是由变换元素的计算样式报告的,它返回一个像素值。 我会试着写一个Modernizrtesting来为任何可能的解决scheme铺平道路。 我已经开发了一个滑动容器的机制,以显示全宽,水平排列的子部分。 滑动标签,基本上。 因为有很多性能密集型的东西,所以精心制作的Javascript会继续下去,所以我希望将JS降到最低,并尽可能地在CSS中完成纯粹的风格。 我觉得我做得很好,考虑到 – JS只是改变了包装的一个属性: (左) http://jsfiddle.net/barney/VPJuq/ (移动设备可以附加/显示/这些小提琴URL自己看结果) 关于这是如何工作的一个词:将标签视为inline-block允许我指定white-space: nowrap (在最后几条规则中的其余代码基本上折叠了标签之间的空白),并允许它们水平堆叠没有清理/返回,一直保持其父母的全部宽度。 从那里,为包装设置一个负的左偏移量就是魔法。 很酷,嗯? 现在,我正在开发的接口是在本地移动应用程序中运行 – 应用程序的核心function依赖于尖端的移动专用技术(不要求 – NDA) – 通过UIWebView,唯一的目前支持该技术的平台是Android。 在这里,我的问题是双重的: transform: translate比left或margin-left过渡更加平滑( translate3d ),到一个真正真正可取的点,边界线至关重要 – 特别是在Android上,看起来是非翻译的在最新的操作系统的最新手机上,过渡仍然是冰冷的。 考虑到这一点,问题的症结在于Android在translate方面似乎以不同的方式推断盒子模型。 为了演示,这是一个基于transform的版本,它和前一个小提琴完全一样,并且支持所有支持translate3d的浏览器。 (带翻译) http://jsfiddle.net/barney/EJ7ve 如果您在iPhone上检查(再次通过追加/show ),您会注意到iPhone上的帧速率有所改善。 对于在Android上运行的Firefox也是如此,可以说Chrome和Android上的默认浏览器也是如此,除了这里的-100%的translateX偏移量指的是所有三个标签所占用的空间,所以包装滑动就足够了没有任何选项卡可见。 这很奇怪,因为转换百分比被指定为与正被转换的元素的全框模型相关 – 并且计算样式明确地将包装宽度描述为与其父项相同(不是如结果所暗示的那样,被拉伸3倍容纳标签)。 我们可以形容这是一个错误? […]

WebView Javascript从本地HTML文件跨域

我加载一个本地html文件(从资产文件夹)到应用程序WebView。 在HTML中,我运行了一个jQuery.getJSON(url)。 该url是一个远程服务器。 这个动作失败了,我猜是因为一个不同的起源问题(跨域)。 我在chrome上运行相同的文件,在那里特别说明了这一点。 有没有办法让Android中的WebView从本地加载的HTML文件中的远程服务器加载数据?

在Android上使用Chrome获取物理屏幕尺寸/ dpi /像素密度

题 有没有一种安全的方式来获得实际正确的屏幕物理尺寸在Chrome上,在Android上? 如果有必要的话,Chrome和Android的旧版本可能会被排除在范围之外。 之前的研究 关于从javascript(或css)中获取设备的实际物理屏幕尺寸的stackoverflow有许多死胡同的问题。 似乎html api标准化和实际的浏览器实现之间没有收敛,更不用说浏览器实现依赖于OS api,而后者依靠硬件提供正确的信息。 顺便提一下,一些先前的答案是奥秘(2011年等)在假设当时盛行的某个像素密度,因此是无用的。 其他与webkit有关,但Chrome浏览器在Chrome(?)中眨眼取代了Webkit。 我想通过在Android上仅限于Chrome来探索简单解决scheme的存在。 注意 这是关于浏览器内部的javascript(或css)解决scheme,而不是本地应用程序的解决scheme。

Cordova – 拒绝执行内联事件处理程序,因为它违反了以下内容安全策略

我正在为cordova应用程序开发进行培训,并解决了内容安全策略方面的问题。 我的应用程序正在运行与Android模拟器,但是当我必须执行一个JavaScript我在NetBeans(输出窗口)中收到消息。 Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' https://ssl.gstatic.com". (22:35:56:126 | error, security) at www/index.html:58 我的代码如下。 这是我的index.html。 我试图理解CSP是如何工作的,我想我理解这个概念,但在这种情况下,我不明白这个问题。 第58行是评论。 <html> <head> <meta http-equiv="Content-Security-Policy" content="default-src 'self' * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self'; script-src 'self' https://ssl.gstatic.com; media-src *"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta […]

socket.io – ReferenceError:io没有定义

我正在编写Android 2.3.5(也将与iOS兼容)的应用程序。 我希望将数据从应用程序的HTML / Javascript传输到服务器上的Python程序(使用Twisted引擎检索数据)。 我已经尝试了很多东西,看了各种论坛,答案,教程和网页 – 包括这里的大多数 – 并且找不到答案。 以下是我的index.html文件中的相关Javascript: <script src="socket-lib/socket.io.js"></script> <script type="text/javascript" charset="utf-8"> function sendData() { try { var socket = io.connect('http://mywebsite.com:12345'); socket.on('connect', function(data) { socket.send('Hello.'); socket.on('message', function (msg) { socket.send('This is where I send data?'); }); }); } catch(err) { alert('ERROR: socket.io encountered a problem:\n\n' + err); } } // end […]

在Android网页上禁用缩放input焦点

这里是困境,我有一个网页(仅适用于Android设备),并在该页面中有一个input框(一个文本框专门),当它获得焦点的浏览器放大。我不希望它放大 – 声音容易,对吗? 这里是它获得乐趣的地方:我必须能够放大一般,所以不要说 <meta name='viewport' content='user-scalable=0'> 这对我不起作用。 此外,input框不会收到点击事件。 它出现时另一个button被点击获取焦点编程。 以下是我所尝试过的,迄今为止失败了: jQuery('head meta[name=viewport]').remove(); jQuery('head').prepend('<meta name="viewport" content="width=720px;intial-scale=1.0;maximum-scale=1.0;user-scalable=no" />'); jQuery("#locationLock input").focus(); jQuery('head meta[name=viewport]').remove(); jQuery('head').prepend('<meta name="viewport" content="width=720px;intial-scale=1.0;maximum-scale=1.0;user-scalable=yes" />'); 这也失败了: <input type='text' onfocus="return false"> 和这个: jQuery("#locationLock input").focus(function(e){e.preventDefault();}); 有任何想法吗?