Articles of cordova

设备重启后启动Phonegap插件

我正在为Android开发混合Phonegap应用程序。 该应用程序仅使用我正在开发的一个插件。 该插件做了三件事 手表的地理位置变化(前景和背景) 设置半小时警报以执行某些定期任务 收听推送消息。 我使用pushy.me服务,我使用的代码遵循他们的文档 。 我已经实现了代码以使应用程序调整到设备重新启动时有些惶恐,但结果很简单(感谢我在SO上的其他线程中find的信息) package com.example.plugin; import org.apache.cordova.CordovaInterface; import org.apache.cordova.CordovaPlugin; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaWebView; import android.content.Context; import android.content.BroadcastReceiver; import android.content.pm.PackageManager; import android.app.Activity; import android.content.Intent; public class Rebooter extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, MyAppCordovaPlugin.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } 我这样注册了重启接收器 MyAppCordovaPlugin是我的应用程序/插件的入口点 […]

哪个更安全:外部浏览器或ChromeTab授权?

我正在开发针对Android和iOS智能手机的基于cordova的混合移动应用程序。 更新: Google不再支持嵌入式网页浏览方式 用例:应用程序对用户进行身份validation,然后访问Google Calendar API,最后在应用上显示用户事件。 注意 :我将使用没有客户端库的3脚OAuth和Google Data API。 问题要向Google调用OAuth请求,我应该使用外部浏览器还是ChromeTabs? 从安全角度来看哪种方法最合适? 谢谢!

navigator.geolocation.getCurrentPosition总是在Android中超时,直到GPS /位置关闭

app.controller(‘dashboard’, function($scope){ $scope.getPosition = function(position){ $scope.acc = position.coords; $scope.lat = position.coords.latitude; $scope.lng = position.coords.longitude; $scope.$apply(); }; $scope.getPositionErr = function(error){ alert(‘code: ‘ + error.code + ‘\n’ + ‘message: ‘ + error.message + ‘\n’); }; navigator.geolocation.getCurrentPosition($scope.getPosition, $scope.getPositionErr, {maximumAge: 0, timeout: 6000, enableHighAccuracy:false}); }); 我正在使用Angular JS和Cordova作为Android应用程序。 此代码在桌面上运行正常,但在Nexus 4和Lollipop上运行不正常。 根据Cordova的要求,控制器代码也在设备准备之后执行 我努力了 将HighAccuracy设置为false 删除地理位置插件,以便它使用Wifi的默认位置 设备重启 清除浏览器缓存 飞机模式开/关 无线开/关 移动数据开/关 但是我无法获得lat,长期和地理定位总是会超时。 […]

使用Phonegap暂停Android应用

有没有办法以编程方式暂停Phonegap中的Android应用程序? 我想模仿按下HOME按钮时发生的行为。 我已经不得不使用这个来覆盖后退按钮处理程序,而在大多数情况下我希望它执行我的操作,当在特定状态下用户希望应用程序最小化时,我想复制此行为。 请记住,在Android上,这与关闭应用程序不同。 使用device.exitApp();可以很容易地做到这一点device.exitApp(); 但我希望它能记住它的状态并继续在后台运行。 特别是如果仍然在后台完成异步作业。 Phonegap中是否有一项function可以实现这一目标? 在Android Phonegap手动暂停应用程序的可能重复,但我找不到OP提到的一些工具,如navigator ,所以我很自然地完全编辑和重写他们的post

Javascript backbutton事件监听器覆盖了android设备后退按钮

我使用cordova 2.6.0创建了Android app 。 我在我的应用程序中使用html标记和jQuery实现了一个menufunction,它可以切换与设备的menubutton进行交互。 但我无法想象达到以下要求,表现得像本机应用程序。 需求 如果menu visible , menu应隐藏在按设备的backbutton按钮上。 如果menu不可见,则back history按钮现在应该正常运行,即,它应该exit app或转到back history 。 这是我的代码 document.addEventListener(‘deviceready’, function(){ document.addEventListener(‘menubutton’, function(){ //Toggle Menu //Which is working fine }); document.addEventListener(‘backbutton’, function(){ if(menu is visible) { //Hide the menu //This is also working fine return false; } //BUT the default action of backbutton has gone. It cannot […]

无法在Android 2.3.3上的Phonegap应用中运行

我正在为Android和iOS开发Phonegap应用程序。 大多数东西工作得很好,但我遇到了标签的问题。 它通过jQuery mobile得到增强,在该版本的Android上,当点击/点击相应的div时,选项不会显示。 当我点击两次/点击时,它们会显示出来: 在包含的div上 在div上方的区域 在该场景中,选项显示,并且当选择更改事件时,将执行更改事件并执行代码绑定。 我发现了这两个Android问题: http : //code.google.com/p/android/issues/detail? id = 10280和http://code.google.com/p/android/issues/detail?id=6721 我尝试过那里提到的解决方法,但他们没有改变任何东西。 我仍然需要点击两次,但这不是我追求的行为。 我只需要点击一下。 问题仅存在于Android 2.3.3上,我认为也是旧版本。 在iOS和更新的Androids上,一切都运行得很好。 我整天都在努力解决这个问题并尝试了一切。 任何帮助,提示将非常感谢。 谢谢。

在Android中混合使用cordova和本机活动

我希望我的大部分应用程序(列表项,存储,登录,关于屏幕等等)都在cordova中处理,因为在本机工作流程中这样做很痛苦。 但是我有一个特定的活动(我已经创建了)无法用cordova完成(至少不够好和足够快)。 我该如何创建这个应用程序? 我是否应该创建一个仅加载这两项活动的cordova插件? 我应该通过cli生成cordova应用程序还是应该将cordova嵌入到一个活动中? 如果有更多的材料,我很乐意听到它。 提前致谢。

Phonegap跨域AJAX POST请求无法在Android上运行

跨域AJAX POST请求在包括移动电话上的浏览器在内的Web浏览器上运行良好,但不适用于使用Phonegap构建的本机应用程序 我创建了一个登录表单,用户必须输入他们的登录凭据,然后由heroku上托管的服务器validation,如果输入了有效凭据,则返回json {“success”:true} 。 我的Ajax脚本: $.ajax({ type: “POST”, url: “http://domain.com/public/auth/app-login”, contentType: “application/x-www-form-urlencoded; charset=utf-8”, dataType: “json”, data: {identity: , password: }, crossDomain: true, cache: false, success: function(data) { obj = JSON.parse(data); if (obj && obj.success === true) { window.location.href = ‘home.html’; } }, error: function(e) { alert(‘Error: ‘ + e.message); } }); 解决此问题的步骤: 域名白名单 – […]

Android的Kiosk模式

我有一个混合应用程序写在phonegap为Android平板电脑。 现在我希望平板电脑只显示我的应用程序。 基本上我希望平板电脑始终处于仅运行我的应用程序的信息亭模式。 这样所有按钮都被禁用。 我在网上寻找解决方案,其中一个是使用“surelock”,但它并没有做到以上所有。 另一种选择是编写我自己的ROM,但是我找不到任何好的教程。 任何人都可以帮助我PLZ?

在Cordova 4.0上的Android Fragment中的Cordova webview

我刚刚升级到cordova 4.0 for android。 我使用以下post在片段中加载cordova webview .. https://github.com/Adobe-Marketing-Cloud-Apps/app-sample-android-phonegap/wiki/Embed-Webview-in-Android-Fragment 从3开始升级到cordova 4.0后,此代码不再有效。* 具体来说,这个第二行有例外…… LayoutInflater localInflater = inflater.cloneInContext(new CordovaContext(getActivity(), this)); View v = localInflater.inflate(R.layout.dialog_webview, container, false); 这个标签在我的布局文件中… exception消息…… android.view.InflateException:二进制XML文件行#43:类不是View org.apache.cordova.CordovaWebView 有没有人对如何解决这个问题有任何想法? 看起来好像自Cordova 4.0以来,CordovaWebView类已经改变了…… public class CordovaWebView extends WebView 至 public interface CordovaWebView