- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有多个页面
在cordova中,当它启动时,它首先显示index.html
并触发javascript上的deviceready
事件,当我点击类似搜索的链接时。 html
时,WebView 更改并加载 search.html
但不触发 deviceready
javascript 事件。
So, right now i use
onload
in another pages because i thinkdeviceready
event only trigger when the App is ready to work(only one time at the start).
示例(index.html,这个效果很好):
<!DOCTYPE HTML>
<html>
<head>
...
<script>
document.addEventListener("deviceready", function(){
console.log('Device is Ready!!');
}, false);
</script>
...
</head>
<body>
<a href="search.html">Go to search</a>
</body>
</html>
示例(XYZ.html,这不会,因为永远不会触发deviceready
):
<!DOCTYPE HTML>
<html>
<head>
...
<script>
document.addEventListener("deviceready", function(){
console.log('Device is Ready!!');
}, false);
</script>
...
</head>
<body>
<a href="index.html">Go to Index</a>
</body>
</html>
文件结构示例:
+ www/
- .
- ..
+ js/
- jquery.min.js
- bootstrap.min.js
+ css/
- bootstrap.min.css
+ img/
- logo.png
- default.png
+ icons/
- alert.png
- danger.png
- important.png
- icon.png
- index.html
- searh.html
- favorites.html
- contacts.html
- configuration.html
- about.html
配置.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.cordovacrosswalk.app" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>CordovaAndCrosswalkApp</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<preference name="xwalkVersion" value="15+" />
<preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" />
<preference name="xwalkMode" value="embedded" />
<preference name="xwalkMultipleApk" value="true" />
</widget>
非常感谢!
最佳答案
@olaf,
你需要read the documentation和博客 Phonegap Build和 Cordova 。 Cordova/Phonegap 是一团糟。注意:Cordova 是*许多* hybrid platforms 的基础,包括Phonegap、Phonegap Build、Ionic、Sencha Touch等
这些常见问题解答也应该有所帮助。
config.xml
index.html
onload()
和 deviceready
的困惑。只是为了澄清这一点。 deviceready
等待直到加载完毕。所以理论上,它正在等待onload
完成。我可以验证这一点。我刚刚完成了new boilerplate适用于 Phonegap Build 的最新版本 (cli-5.2.0)。
加载顺序为启动屏幕 -> onload()
-> ondeviceready()
-> 启动屏幕 hide() 。
更新:最后一件事。我有几个可以处理多个页面的程序,所以我知道大多数问题
config.xml
请注意,您的应用程序现在不安全。保护您的应用程序的安全取决于您。
<?xml version='1.0' encoding='utf-8'?>
<!-- your header is off. READ http://docs.build.phonegap.com/en_US/configuring_basics.md.html#The%20Basics -->
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.cordovacrosswalk.app"
version = "0.0.1"
versionCode = "10"> <!-- versionCode is optional and Android only -->
<name>CordovaAndCrosswalkApp</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<!-- ONLY needed for IDE/SDK -->
<!-- <content src="index.html" /> -->
<!-- Tool Set Version -->
<!-- <preference name='phonegap-version' value='3.7.0' /> --> <!-- turns off required whitelist -->
<!-- <preference name='phonegap-version' value='cli-5.2.0' /> -->
<!-- Target Platforms -->
<platform name="android" />
<platform name="ios" />
<platform name="windows" />
<!-- You'll very likely need this on different platform. So you can tell them apart -->
<plugin name="cordova-plugin-device" source="npm" version="1.0.1" />
<!-- WHITELIST * WHITELIST * WHITELIST -->
<!-- https://github.com/jessemonroy650/top-phonegap-mistakes/blob/master/the-whitelist-system.md -->
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
<plugin name='org.crosswalk.engine' version='1.3.0' source='pgb' />
<preference name="xwalkVersion" value="15+" />
<preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" />
<preference name="xwalkMode" value="embedded" />
<preference name="xwalkMultipleApk" value="true" />
</widget>
index.html
请注意,您的应用程序现在不安全。保护您的应用程序的安全取决于您。
添加到每个 HTML 文件的顶部。
阅读 HOW TO apply the Cordova/Phonegap the whitelist system关于CSP
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src 'self' 'unsafe-inline' 'unsafe-eval';
script-src 'self' 'unsafe-inline' 'unsafe-eval';">
关于javascript - Cordova 事件 DeviceReady 不适用于所有页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33883422/
我意识到有人提出了类似的问题,但发布的解决方案都不适合我,所以也许我的情况有点不同。我同时使用 Phonegap 和 JQuery Mobile。我已经按照我的 index.html 中的说明包含了
在我的phonegap应用程序中,我有以下架构: -index.html -page1.html -page2.html... 我将其添加到index.html以便使用谷歌分析插件(https://g
我在为 Cordova 应用程序运行 jasmine 测试时遇到了一个问题:我有一个 html 页面 (Jasmine 2.4 SpecRunner.html),其脚本位于 中。要加载的文件(插件、
这几天我一直在为这个问题苦恼。在尝试创建新的 FileTransfer() 对象时出现许多“对象未定义”错误后,看起来问题更加基本 - 不知何故,DeviceReady 事件没有触发。Stack Ov
我编写了一个简单的应用程序来测试 native 对话框。为简单起见,我将仅包含用于触发警报对话框的代码。这是代码: index.html Alert Title Message
我正在使用 Phonegap 构建,并使用 hello world 示例附带的默认启动 JS。 将应用程序启动到像 Ripple 这样的模拟器中,它工作正常,deviceready 按预期触发,但在我
我有一个使用phonegap 1.6.0 和 JQM 1.1.0 在 iOS 和 Android 上开发的应用程序。 现在我对黑莓使用了相同的代码。我在一个 HTML 中有很多页面。我只是不断地更换页
我已经通过 npm 安装了最新版本的 phonegap,并且最近将我的 iPhone SE 更新到了 iOS 10。现在,当我的设备通过 USB 数据线连接到我的 iMac 时运行“phonegap
我的 cordova 项目的 deviceready 没有正确启动(至少在 iOS 中)。我已经搜索了几个小时,但仍然无法弄清楚。我做错了什么吗? js/cordova.js 的路径也存在:
大家好 我在波纹 Chrome 扩展phonegap模拟器中没有正确触发初始phonegap'deviceready'事件处理程序的一些问题。 --> --> function
我是phonegap的新手,我在node.js中创建了以下应用程序,并在三星galaxy 1上运行了该应用程序。但无法触发deviceready事件。我是否错过了一步?
我有多个页面 在cordova中,当它启动时,它首先显示index.html并触发javascript上的deviceready事件,当我点击类似搜索的链接时。 html 时,WebView 更改并加
我得到"deviceready has not fired after 5 seconds.", source: file:///android_asset/www/cordova.js (1185)
我正在学习在 Cordova PhoneGap 中创建应用程序,但我对这个 'deviceready' 事件的使用感到困惑。它应该是特定于 Cordova API 的事件,但在 Hello World
我在 Cordova 方面还有另一个问题。我想在 Cordova 7.1.0 中使用插件“cordova.custom.plugins.exitapp”和“cordova-plugins-printe
我有一个 cordova 项目,我需要使用 inappbrowser 插件打开一个带有 cordova 页面的窗口,而“父级”仍在运行。 Cordova 加载 index.html,使用 inappb
我正在构建一个将用 Cordova 8.1.2 包装的全平台 Angular 6 应用程序,不幸的是我无法触发 deviceready 事件。 我有两个单独的项目,一个用于 Angular,一个用于
我的应用遇到了一个奇怪的问题。 这是一个使用 jQuery(不是 jQuery mobile)的多页面手机应用程序。 当您在安装后首次运行该应用程序时,它会在索引页面上启动设备就绪。 移动到其他页面后
我是 Cordova 和 Phonegap 的新手,我正在尝试开发提醒应用程序。我使用了 cordova-plugin-local-notifications ( https://github.com
多年来我一直在开发 Cordova 应用程序,我经常遇到“设备就绪”事件在 iOS 中根本不会触发的问题。 (这不是缺少的 cordova.js 文件,这似乎是我在 SO 上找到的唯一答案)。 目前我
我是一名优秀的程序员,十分优秀!