Articles of cordova

Apache Cordova(PhoneGap)中的资源结构并从文件系统加载文件

我们有一个相当复杂的JS Web应用程序,在浏览器中以不同的方式(string,数组缓冲区,base64,二进制)加载不同的资源(HTML模板,额外的JS / CSS文件,JSON数据,图像,video,声音)写作)。 现在,我们希望对其进行更改,以便在不同平台上将所有内容(包括资源)都作为Cordova移动应用程序工作。 问题#1 – 从本地文件系统加载文件 现在,由于Android正在向Chrome内部过渡,因此XHR请求本地文件://资源在任何地方都可以正常工作, 而现在Chrome已经成为一个阻碍。 好的,还剩下两个选项: 使用脚本标签,使用iframes的HTML伪造所有JSONP内容 – 这不是一个非常好的select,因为它需要对资源本身进行更改+它的一种黑客行为,它花费我们很多的function(string加载仅用于JS / HTML,arrayBuffer,二进制等) 使用File API 简单的香草文件API不幸的是总是 需要用户交互 (就像在input框上单击)来获取文件引用,再加上IE10是一个禁忌。 好的,那么唯一的select就是使用PhoneGap的自定义File API插件 – 这给我们带来了下一个问题。 问题#2 – PhoneGap中的(跨平台?)文件path 我喜欢PhoneGap CLI – 您可以在terminal中input几个命令,并为您pipe理不同平台的文件和构build。 还是呢? 据我可以告诉根据PhoneGap你应该把所有的东西都放在WWW文件夹 – 然而(一旦你build立应用程序),疯狂的事情是 – 有没有简单的方法来读取这些文件(通过文件API插件) PhoneGap从哪里放置它们。 你会认为fileSystem.root (LocalFileSystem)指向该文件夹,但至less在iOS上WWW文件夹是在你的应用程序中,但fileSystem.root引用指向一个外部的Documents文件夹(仍然必须在Android上进行testing但我猜再次有不同的东西)。 经过一番修改后,我想出了如何到达WWW文件夹,但它的灵活性,哈克,感觉就像不应该工作(iOS只在此刻): window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ fileSystem.root.getDirectory("../HelloWorld.app/www", {create: true}, function(entry) { entry.getFile("test.json", {create: false}, function(fileEntry) { […]

如何将android添加到cordova平台? PATH错误?

我正在尝试添加android作为cordova平台,以便我可以使用phonegap构build应用程序。 当我试图添加Android如此: $ cordova platform add android 我收到了这个错误信息: [错误:命令android失败。 确保你已经安装了最新的Android SDK,并且将android命令(在tools /文件夹内)添加到你的path中。 输出:/ bin / sh:未findandroid:命令] 我有最新的Android SDK安装,所以我想我需要添加Android到我的path。 我已经search了如何做到这一点,并search这个论坛,但我对命令行使用知之甚less,我不明白的答案。 如果有人可以提供非常简单的步骤来添加Android到我的path,我将不胜感激。

在PhoneGap应用程序的Android中显示状态栏(即防止全屏)

我有一个phonegap 3.0.0应用程序。 我的应用程序涵盖了状态栏(时钟,接待信息等)。 由于我不是一个全屏游戏,这是不可取的。 我相信它是作为一个“全屏”应用程序运行。 我发现在这里的post做相反的(即使一个应用程序全屏幕),并做了build议的反面。 我想知道是否在PhoneGap中改变了一些东西,或者是我用来创build项目的PhoneGap CLI,因为我的应用程序正在全屏显示。 我试过这个: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setIntegerProperty("splashscreen", R.drawable.splash); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); super.loadUrl(Config.getStartUrl(), 10000); } 明确告诉它不是全屏模式….但它仍然显示全屏幕。

如何在Cordova / Phonegap上使用GoogleloginAPI

我想在Phonegap App中使用“使用Googlelogin”。 我读了很多文章,但不知道如何完成。 提前致谢。 根据这个URL,我尝试使用oAuth2来“安装应用程序”。 但是,那么应用程序用户必须手动复制代码并粘贴到我的应用程序中。 我正在使用built.io 联合login ,如果其相关。

文件读取器后获取文件名asynchronous加载文件

我正在加载目录中的几个文件来parsing他们的一些数据。 这工作到目前为止,但我想知道我正在看的至极文件。 所以我需要加载后的文件的名称。 有人可以帮助吗? //获取目录中的所有文件 function updateData(){ var dirReader = approot.createReader(); var fail =failCB('Error – Directory for parsing failed to open'); // logs fail… dirReader.readEntries(parseData,fail); } //加载每个文件 function parseData(entries){ var i; for (i=0; i<entries.length; i++) { var reader = new FileReader(); reader.onloadend = createListItem; reader.readAsText(entries[i]); } } //这里我想知道这个名字! function createListItem(evt){ // it gives me all […]

Android- PhoneGap / WebView忽略视口元标签?

我有一个网页,我试图显示在我的Android设备(从项目的资产目录加载)使用PhoneGap(它使用普通的WebView设置为“appview”),但WebView完全忽略了以下内容: <meta name = "viewport" content = "user-scalable=no,width=device-width" /> 无论我在这一行中设置了什么(我已经试过明确地设置缩放,以像素为单位设置宽度/高度等),设备完全忽略它,并使网站非常小,并锚定在左上angular的屏幕。 我可以放大使用捏手势(即使我明确禁用缩放在上面的HTML代码),但我希望该页面放大,以适当负载设备。 这是有趣的一点…如果我把我的networking服务器上的完全相同的站点,并使用我的testing设备上的默认浏览器导航到它,页面正确加载(缩放到设备的正确大小)。 请帮忙。 谢谢。 EDIT1: 我目前的设置是: <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,target-densitydpi=device-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" /> 这也完全被忽略了。 EDIT2: 这里有一些有趣的… <meta name="viewport" content="width=device-width, initial-scale=2.0, maximum-scale=2.0, user-scalable=no" /> 上面的这行在模拟器中将页面缩放到2倍,但在我的设备上没有任何变化(Samsung Epic 2.2.1版本)。 尽pipe如此,即使是2倍,页面也不会被缩放到模拟器的宽度。我必须将其设置为“initial-scale = 2.5”。

PhoneGap插件:将JSON数据传输到本地的最快方法

我一直在研究一个PhoneGap插件来启用WebGL,旨在将HTML5游戏发布到移动设备上。 这就是所谓的WebGLGap 。 然而,PhoneGap调用插件代码的方法(通过exec)通常包括将所有参数串化为JSON,然后再次parsing它。 根据这个问题 ,即使在被宣称拥有更快桥接的PhoneGap 2.2中,这一点也没有改变。 对于像WebGL这样的东西来说,这是绝对站不住脚的,即使对于简单的演示,也会杀死性能(<10 FPS)。 这是因为在很多情况下,尤其是2D游戏,每一帧都必须传输一大块代表所有运行的WebGL命令的JSON数据。 这包括所有的顶点数据 – 想象一个巨大的“0.959455,0.959595,0.588575,0.585858 …”等string。 很显然,string化和parsing是一个不必要的低效率的步骤,但是我正在努力寻找一种方法来将JS的JSON数据传递给本地,从而避免了这种情况。 理想情况下,这应该适用于Android和iOS,但我很高兴现在只能使用仅支持Android的解决scheme。 有没有人有任何想法最有效的方式来做到这一点?

如何修复屏幕方向为我的整个PhoneGap应用程序的肖像

如何configurationPhonegap应用程序只能修复到肖像模式,我有可能使用CSS或JavaScript来做到这一点,这样我就可以在平台上获得一致的行为 我发现这个有用的后检测显示方向在移动设备上随着加速度计平台独立的方法 这里解释了如何检测方向,但我需要configuration它 是否有可能通过CSS3媒体查询?

jquery ajax GET请求执行两次

我有以下ajax请求,只需点击一下button即可执行: <a href="javascript:test()"><img src="css/images/test.png"></a> function test(){ console.debug("*"); $.ajax({ type: "GET", dataType: "json", url: '/path/to/url', success: function(data){ console.debug("**"); }, error: function(jqXHR, status, error){ console.debug("*** " + status + " : " + error + " : " + jqXHR.status); }, cache: false }); } 请求响应大约需要30秒才能返回。 但是,请求由服务器接收并执行两次,正如apache日志所看到的那样。 请求的时间戳是30秒,但请求是相同的(例如?_ = 1363692320782)。 点击响应函数被调用一次,错误callback被调用一次(正好在初始请求后60秒),尽pipeapache响应是200。 这个问题已经在手机应用程序中的三星Galaxy S2,Android版本2.3.5被转载。 更新 – 从下面的评论添加Apache日志条目 1.2.3.4 […]

adb:加载共享库时出错:libncurses.so.5:无法打开共享对象文件:没有这样的文件或目录

我在使用Debian的笔记本电脑上运行Phonegap导入项目时遇到了一些麻烦。 我已经安装了Eclipse和Android插件,一切似乎都很好,直到这里。 我已经将这行添加到我的.bashrc文件中: export PATH=${PATH}:/home/s/android-sdks/platform-tools/ 我在Eclipse中从现有文件中select新的Android项目,然后加载项目的代码。 但是当我尝试执行它,我得到这个错误消息: [2013-06-13 18:12:16 – MyProject] Android Launch! [2013-06-13 18:12:16 – MyProject] The connection to adb is down, and a severe error has occured. [2013-06-13 18:12:16 – MyProject] You must restart adb and Eclipse. [2013-06-13 18:12:16 – MyProject] Please ensure that adb is correctly located at '/home/s/android-sdks/platform-tools/adb' and can be […]