Articles of cordova

使用jQuery / Phonegap进行肥皂查询总是在Android上失败

我用jQuery mobile&Phonegap(现在的Cordova)开发了一个iPhone / Android应用程序。 这个应用程序使用不同的服务没有问题。 其中一个服务是Soap一个,所以我使用jsSOAPClient(jquery.jqSOAPClient.js)为jQuery请求服务。 我在iOS设备上没有任何问题,但查询总是在Android上失败。 在jsSOAPClient中,请求看起来像这样: function getResponse(xData, status) { if(!!callback) { SOAPClient.Status = xData.status; SOAPClient.ResponseText = xData.responseText; SOAPClient.ResponseXML = xData.responseXML; callback(xData.responseXML); } } $.ajax({ type: “POST”, url: SOAPClient.Proxy, dataType: “xml”, processData: false, data: content, complete: getResponse, beforeSend: function(req) { req.setRequestHeader(“Method”, “POST”); req.setRequestHeader(“Content-Length”, SOAPClient.ContentLength); req.setRequestHeader(“Content-Type”, SOAPClient.ContentType + “; charset=\”” + SOAPClient.CharSet + “\””); […]

在Cordova中使用ServiceWorker

我们一直在使用Service Workers开发我们的应用程序,因为它易于构建离线应用程序。 它以通常的方式注册: navigator.serviceWorker.register( “./worker.js” ).then( function () { console.log( “woohoo!” ); }, function ( err ) { console.log( “oh noes”, err ); }); 它实际上非常简单: self.addEventListener( “install”, function () { console.log( “yay” ); }); 它在桌面浏览器中开发,在Web服务器后面工作正常。 但有没有办法在Cordova / Crosswalk中使用它,因为他们使用file协议?

在Android WebView(Cordova)中检查互联网连接

我知道在Stackoverflow有很多关于这个的问题和答案,我读了很多,但没有一个能够工作。 我在标题Android WebView澄清,因为它是最重要的目标,但我希望这也适用于其他设备。 我在安装了Android 4.4.2 Intel XDK的应用程序上测试了以下代码,该应用程序安装在带有Android 4.4.2的SM-G355M上, 安装在带有iOS 9.3.4的iPhone 5C上的Safari上 ; 我在两种情况下得到的都是相同的值,是true (即使我有互联网连接,有时我也会得到false )。 我试过了: navigator.onLine ,它总是给出相同的值。 document.addEventListener(“online”, …不会触发 ajax不起作用,反正对服务器没有影响? 代码: https : //nanilab.com/stackoverflow/webview-internet-connection.php (此链接现已中断) 选项1 : function option1(){ var isOffline = ‘onLine’ in navigator && !navigator.onLine, text = isOffline == true ? ‘ without connection ‘ : ‘ connected ‘; $(‘.option-one span’).text(text); $(‘.option-one […]

PhoneGap Android获取应用版本代码

我正在使用jQueryMobile构建一个phonegap android应用程序。 我想构建一个function,通过web服务检查应用程序的版本代码,以便建议更新,如果应用程序已过时,则提示进入google play商店。 从我的搜索来看,看起来PhoneGap没有find版本代码的方法 。 有办法做到这一点: 没有在Java类中写任何东西? 每次推新版本时都不会手动存储更新的variables? 或者,如果在课堂上写作是必不可少的,我该如何从PhoneGap中调用它? 编辑:我用一个有效的解决方案编辑了接受的答案! 我希望每个人都能从中获利。 编辑(2):这里是完整的插件回购与说明,随意分叉:) https://github.com/gcatalfamo/Version

PhoneGap / Cordova Android在onDeviceReady之后获得屏幕尺寸

Android应用程序在onDeviceReady事件上返回无效大小(320×480),但几秒后大小变得正确。 我们怎样才能在一开始就获得正确的尺寸? 或者是否有任何我可以获得正确尺寸的事件? 我正在使用此函数来获取大小: function getWindowSizes() { var windowHeight = 0, windowWidth = 0; if (typeof (window.innerWidth) == ‘number’) { windowHeight = window.innerHeight; windowWidth = window.innerWidth; } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { windowHeight = document.documentElement.clientHeight; windowWidth = document.documentElement.clientWidth; } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { windowHeight = document.body.clientHeight; windowWidth = […]

Ajax发布不起作用 – Jquery Phonegap Android

大家好,并且提前好。 我正在使用Phonegap 2.1.0。 在白名单中,一切都被接受了.. ** ** 我正在使用此函数从我的大学Web服务器调用远程php文件: var postData = $(this).serialize(); $.ajax({ type: ‘POST’, url: ‘http://–/smartphone/login.php’, dataType : ‘json’, data: postData, success: function(data){ alert(“good”); }, error: function(){ alert(‘problem!’); } }); php文件只是出于调试原因,如下所示: ‘My Name’, ’email’=>’my_email@example.com’ ); echo json_encode($sample); ?> 但是ajax请求没有发生..在eclipse中,当我点击提交时我不断收到此错误: JSCallback Error: Request failed with status 0 at file:///android_asset/www/js/cordova-2.1.0.js:3743 更重要的是,我忘了添加,是我可以打开url作为模拟器的链接。它工作正常。 * html代码: * Smart Greenhouse E-mail: […]

带有Phonegap的animation闪屏

是否可以为Android和iOS Phonegap应用添加animation启animation面? 我试图将animation.gif添加为Android的启animation面文件,但它不起作用。 即没有animation,我唯一能看到的是.gif的第一帧。 还有一种方法可以在启animation面的某处添加动态文本吗? 其实这就是我想要的。 并且使用.gif只是我的假设,我怎么能以最简单的方式做到这一点。 所以,如果你能给我一个使用Phonegap的iOS和Android动态闪屏的工作鳕鱼的例子,它会更好。

在Windows 7上安装Phonegap:命令’android’失败

我按照文档和Phonegap上的一些教程在Windows 7上安装它,但是我被卡住了。 到目前为止,我已经安装了Java 1.7.0_06,Ant-Apache 1.9.2,Eclipse,Android SDK和Android 4.3(API 18),所有Tools和SDK Manager中的所有Extras,NodeJS 0.10.18和Git。 我在Windows中的PATHvariables中编写了所有路径,它看起来像这样(已分解): F:\nodejs; F:\android-sdk\sdk\platform-tools; F:\android-sdk\sdk\tools; %JAVA_HOME%\bin; %ANT_HOME%\bin; C:\Program Files (x86)\Git\bin %JAVA_HOME%和%ANT_HOME%具有正确的路径,当我在CLI中键入java -version或ant -version时,它们会给我他们的版本 所以我进入CLI,我使用以下命令安装了Phonegap: npm install -g phonegap 当我输入phonegap -v时,它给了我3.0.0-0.14.3版本。 现在,我转到我的文件夹F:\ apps,然后使用以下命令创建了一个新项目: phonegap create hello com.example.hello HelloWorld 一切顺利,文件被创建。 我进了’hello’文件夹,输入了这个命令: phonegap local build android 出现问题,我收到此错误: [phonegap] adding the Android platform… [error] The command `android` failed. Make sure […]

Cordova Wrapper App内部链接在App中加载,外部链接在浏览器中加载

我有一个简单的Cordova包装应用程序,它指向外部网页,而不定义任何自己的视图。 我希望该域中的所有内部链接都加载到应用程序中 ,但所有外部链接( http://twitter.com等)都要加载到系统浏览器中 ,因此页面具有后退/前进function。 在具有视图的普通应用程序中,我可以设置target=’_system’以在默认浏览器中加载链接,或使用cordova-plugin-inappbrowser在Web浏览器视图中显式打开链接。 不幸的是,在这种情况下,我无法编辑服务器端代码,因此需要一个适用于应用程序的解决方案。 如果我这样定义config.xml ,那么内部和外部链接都会加载到app中。 如果我使用allow-intent定义config.xml ,则在系统浏览器中打开内部和外部链接。 其他人建议使用自定义javascript将target覆盖到_system ,但是因为我没有自己的观点,所以我不能真正做到这一点。 是否可以通过这种方式为cordova-plugin-whitelist定义allow-intent ,以包含不属于内部域的所有URL ? 或者我是否需要以某种方式覆盖MainViewController shouldStartLoadWithRequest然后调用[[UIApplication sharedApplication] openURL:url] ?

menubutton升级到cordova 5 + cordova android 4.0.0后不再工作了

我最近升级到cordova 5并在4.0.0版本中移除/重新创建了android平台并卸载/重新安装了所有插件。 我还必须将android sdk升级到sdk 22而不是21。 自更新以来,我不再能够捕获cordova文档中描述的menubutton事件。 由于它仍然在边缘文档中引用,我认为它应该仍然有效,我在发行说明中没有看到这一点。 后退按钮仍然有效。 我试图将target-sdk设置为19,它没有解决任何关于这个问题的问题。 编辑:我已经挖掘了cordova源代码并在CordovaWebViewImpl.java中find了我发现了一个可疑的TODO评论: public void setButtonPlumbedToJs(int keyCode, boolean override) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_DOWN: case KeyEvent.KEYCODE_VOLUME_UP: case KeyEvent.KEYCODE_BACK: // TODO: Why are search and menu buttons handled separately? if (override) { boundKeyCodes.add(keyCode); } else { boundKeyCodes.remove(keyCode); } return; default: throw new IllegalArgumentException(“Unsupported keycode: ” + keyCode); } […]