2017-02-25 30 views
0

我想构建一个Cordova应用程序并在Ripple中测试它。当我启动应用程序时,onDeviceReady挂钩会触发,我有cordova变量,我的所有插件变量都可以访问。Cordova没有在onDeviceReady后定义

然而,应用程序加载后,我尝试从控制台访问cordova,例如,它是未定义的。

我不知道发生了什么,但不知何故它消失了。是否应该像Ripple那样工作,或者我只能在真实的设备/仿真器上测试所有的东西?

P.S.它发生在VS2015中创建的全新的空白项目中。所以我真的不明白我应该如何访问cordova和插件,如果它以某种方式变得不确定?

+0

@llya请添加一些代码片段... – Gandhi

+0

@Gandhi真的没有代码片断,应用程序加载后我只是尝试访问控制台中的cordova,它不可用...它不可用同样的方式为我自己的js代码之外的准备... –

+0

是您的设备准备好的事件被解雇? Cordova插件只能在设备就绪回调监听器中访问 – Gandhi

回答

1

Cordova插件代码只有在设备就绪事件被触发后才能被访问,这可以确保Cordova和插件成功加载。

为了更好地理解,请看这sample code。希望能帮助到你。

更新:如果你想通过应用程序访问外部URL,那么你必须使用InAppBrowser来实现它。

1

当您使用Cordova构建应用程序时,您的index.html中引用的Cordova.js可用。 在浏览器中测试时,该文件不可用。 由于您正在对不是移动模拟器的纹波仿真器进行测试,因此您会将cordova仅限定为未定义。

在模拟器/设备上运行Cordova应用程序,然后您将获得cordova变量。

+0

浏览器平台也有Cordova.js文件后可用搭建平台。事实上浏览器平台也支持一些插件。所以我不认为它是一个合适的答案 – Gandhi

+0

请关闭这个答案。它可能会误导正在寻找正确解决方案的其他用户 – Gandhi

0

我想我找到了答案。诀窍是保持在设备上的应用程序的领域,并从远程服务器加载所有的JavaScript。在像Angular这样的SPA应用程序中,它只是需要的应用程序的引导程序index.html,没有其他任何东西。所有.js文件都可以被引用,应用程序将自动“自动更新”。

+0

仍然想知道此 – Gandhi

+0

运行外部“url mydomain.com”的要求究竟是什么那可以访问设备capabilites –

+0

你可以使用inappbrowser相同我猜,仍然使用设备功能 – Gandhi

相关问题