Articles of cordova

使用phonegap创建Android小部件

是否可以使用phonegap创建android主屏幕小部件?

deviceReady无法在PhoneGap应用程序中运行,如何操作?

我有一个简单的PhoneGap应用程序作为休闲: PhoneGap powered App document.addEventListener(“deviceready”, onDeviceReady, true); function onDeviceReady() { alert (‘123’); } title Begin by inserting your credentials. … $(document).ready(function () { }); 这里发生的是警报alert (‘123’); 永远不会被解雇 但是,如果我取出其他JavaScript代码并仅保留警报就会被解雇。 另外,如果我使用$(document).ready(function () { alert (‘123’); }我会收到警报。 这里发生了什么,为什么deviceready没有被解雇? 有任何想法吗?

Javascript和Phonegap插件之间的异步通信

所以,每个人都知道我们创建一个类扩展CordovaPlugin并覆盖execute() ,然后在JS和本机Java(Android)之间创建一个桥梁。 此外,我们使用PluginResult将结果返回给JS。 因此,当从JS向Java插件发出请求时,所有这些都会发生。 我的问题是, 如何 异步 地将结果发送回JS (以及HTML) ? 我不知道异步这个词是不是就在这里。 问题是我想把一些东西发回给JS(比如,当wifi成为启用/禁用时)。 我已经研究过这个,但没有任何适合我的情况。 我试过的是 – 使用WifiManager类创建了一个BroadcastReceiver监听WiFi事件。 注册接收者。 最后,在启用/禁用WiFi时popupToast ,并使用CallbackContext发送结果 callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, “Wifi Connected”))以及与其他消息断开连接。 MyPlugin.java import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.apache.cordova.PluginResult; import org.json.JSONArray; … public class MyPlugin extends CordovaPlugin { private WifiReceiver wifiBroadcastReceiver = null; private CallbackContext callbackContext = null; … public MyPlugin() { wifiBroadcastReceiver = […]

在onPause之后,PhoneGap继续在Android上运行

当应用程序在后台时,我决定测试phonegap WebView是否正常运行。 function test2(x){ $(”, {text: x.cmd}).appendTo($(‘#list’)); } $(function(){test2({cmd:”start”});}); function cb_pause(){test2({cmd:”pause”});} function cb_resume(){ test2({cmd:”resume”});} function tick(){test2({cmd:”timer” + timer});timer++;setTimeout(tick, 1000);} document.addEventListener(“pause”, cb_pause, false); document.addEventListener(“resume”, cb_resume, false); tick(); 它在onPause和onResume上打印pause和resume 。 并且每秒打印timer0 , timer1等。 即使我离开应用程序并开始玩游戏,它也在打印。 我知道我可以并且应该在onPause停止计时器但仍然。 看起来不对。 我预计android会冻结WebView。 我知道后台线程在后台应用程序中不会停止,直到它被卸载。 所以问题是:是否可以在onPause上冻结/暂停/卸载webview并在onResume上解冻/恢复/加载 当我说加载时我的意思是当用户离开app时它应该处于相同的状态。 当我说冻结时,我的意思是我的代码将暂停,即使它将继续调用setTimeout 我想我希望Android的行为像iOS一样。

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

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

如何使用cordova InAppBrowser为用户提供在使用Android设备时关闭浏览器的方法?

我正在使用cordova InAppBrowser来显示我应用中外部网站的内容。 当我在iPhone上打开浏览器时,InAppBrowser底部有一些按钮用于关闭它或来回导航。 Android设备上的InAppBrowser没有这样的按钮,并且没有明显的方式让用户关闭浏览器。 我知道如何以编程方式关闭InAppBrowser,但是在使用Android设备时用户如何关闭它? 我知道用户可以点击硬件返回按钮来关闭浏览器,但是(1)这不直观 – 后退按钮通常意味着“返回页面”,(2)我最终想改变行为返回按钮返回显示在InAppBrowser内部的站点内的页面,而不是关闭浏览器。

PhoneGap Build:如何在Android设备浏览器中打开外部URL?

外部URL不会在我的PhoneGap Android应用程序的系统浏览器中打开。 我正在使用PhoneGap Build 2.3.0。 根据Cordova文档,我使用了目标’_system’: window.open(‘http://www.myurl.nl’, ‘_system’); 在我的config.xml中,我有: 但仍然在我的应用程序webview中打开链接。 怎么解决这个?

仅适用于Android的Cordova错误:com.android.dex.DexException:多个dex文件定义Landroid / support / annotation / AnimRes;

我跟着关于这个问题的另外三个资源,但没有一个工作。 我的iOS构建完美,但无论我尝试改变什么,android都会出现此错误。 已经尝试创建一个新项目,但android保持相同的问题。 已安装所有Android SDK 以下是错误: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:dexDebug’. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Users/sakai/Library/Android/sdk/build-tools/23.0.1/dx –dex –no-optimize –output /Users/sakai/mobile/cupomap/platforms/android/build/intermediates/dex/debug –input-list=/Users/sakai/mobile/cupomap/platforms/android/build/intermediates/tmp/dex/debug/inputList.txt Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at […]

EXTRA_PREVIOUS_SCAN_MODE始终为Android蓝牙返回错误

当设备的蓝牙扫描模式发生变化(即可发现/不可发现)时,我正在使用以下代码将对象返回到Cordova。 cordova.getActivity().getApplicationContext().registerReceiver(new BroadcastReceiver(){ @Override public void onReceive(Context c,Intent intent){ JSONObject json=new JSONObject(); try{ json.put(“current”,intent.getIntExtra(BluetoothAdapter.EXTRA_SCAN_MODE,BluetoothAdapter.ERROR)); json.put(“previous”,intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE,BluetoothAdapter.ERROR)); }catch(JSONException e){ } PluginResult result=new PluginResult(PluginResult.Status.OK,json); result.setKeepCallback(true); discoverableCallback.sendPluginResult(result); // discoverableCallback is a callbackContext } },new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED)); 但是, intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE,BluetoothAdapter.ERROR)始终是BluetoothAdapter.ERROR 。 我尝试连续多次打开和关闭可发现性,它始终是BluetoothAdapter.ERROR 。 如何让它返回先前的扫描模式?

如何使用phonegap检查电话目录中的文件是否存在

我正在编写一个带有Phonegap 1.4.1和Sencha的Android应用程序,用于下载和读取pdf文件。 如何使用phonegap方法,javascript或ajax检查电话目录中是否存在该文件?