- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 cordova 项目,我需要使用 inappbrowser 插件打开一个带有 cordova 页面的窗口,而“父级”仍在运行。
Cordova 加载 index.html
,使用 inappbrowser 插件打开 frame.html
。
Cordova 已加载到 frame.html
但 deviceready 事件从未触发,5 秒后我在 frame.html
的控制台中收到此错误。
这只发生在使用 inappbrowser 插件打开的第二个 webview 中。
cordova.js:1183 deviceready has not fired after 5 seconds.
cordova.js:1176 Channel not fired: onFileSystemPathsReady
cordova.js:1176 Channel not fired: onCordovaInfoReady
我搜索了很多,并得出结论,并不是文档加载中的插件或代码过多导致了触发设备就绪所需的 onNativeReady 事件的延迟。
当我删除 cordova-plugin-file
和 cordova-plugin-file-transfer
时,onFileSystemPathsReady
错误消失。如果我删除 cordova-plugin-device
,onCordovaInfoReady
错误就会消失。
但我需要那些插件。
是什么导致设备就绪事件根本没有触发?
我该怎么做才能在不删除我需要的插件的情况下启动它?
Node version: v4.2.2
Cordova version: 5.4.1
Installed platforms:
android 4.1.1
ios 3.9.2
Installed plugins:
cordova-plugin-bluetoothle 2.4.0 "Bluetooth LE"
cordova-plugin-device 1.1.0 "Device"
cordova-plugin-dialogs 1.2.0 "Notification"
cordova-plugin-file 3.0.0 "File"
cordova-plugin-file-transfer 1.4.0 "File Transfer"
cordova-plugin-inappbrowser 1.1.0 "InAppBrowser"
cordova-plugin-vibration 2.0.0 "Vibration"
cordova-plugin-whitelist 1.2.0 "Whitelist"
de.appplant.cordova.plugin.background-mode 0.6.4 "BackgroundMode"
Config.xml file:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.test.app" version="0.0.1" xmlns="http://www.w3.org/ns/widgets">
<name>TestApp</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:*" />
<allow-navigation href="http://*/*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
</widget>
<!DOCTYPE html>
<html >
<head >
<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval' 'unsafe-inline';" >
<meta name="format-detection" content="telephone=no" >
<meta name="msapplication-tap-highlight" content="no" >
<meta name="viewport" content="user-scalable=no, initial-scale=1, height=device-height, width=device-width" >
<title >Index</title >
<script >
document.addEventListener( 'deviceready', function ()
{
console.log( 'ready' );
win = window.open( 'frame.html', '_blank', 'location=no', function()
{
console.log( arguments );
} );
}, false );
</script >
</head >
<body >
<script type="text/javascript" src="cordova.js" ></script >
</body >
</html >
<!DOCTYPE html>
<html >
<head >
<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval' 'unsafe-inline';" >
<meta name="format-detection" content="telephone=no" >
<meta name="msapplication-tap-highlight" content="no" >
<meta name="viewport" content="user-scalable=no, initial-scale=1, height=device-height, width=device-width" >
<title >Frame</title >
<script >
window.addEventListener( 'deviceready', function()
{
console.log( 'window.deviceready', arguments );
}, false );
document.addEventListener( 'deviceready', function()
{
console.log( 'document.deviceready', arguments );
}, false );
</script >
</head >
<body >
<script type="text/javascript" src="cordova.js" ></script >
</body >
</html >
更新:
我正在使用两个自行修改的插件(不是导致问题的插件),也许这在某种程度上是相关的:
我需要使用 inappbrowser 插件,因为蓝牙插件必须在另一个框架中浏览应用程序时保持连接。这些框架还需要能够相互通信,并且都可以访问 cordova 库。
如果有人有其他想法如何做到这一点,我欢迎他们。
我正在调查 cl.kunder.webview https://github.com/kunder-lab/cl.kunder.webview插件
最佳答案
@ThisNameBetterBeAvailable,
InAppBrowser 没有可用的 Cordova 服务.
来自文档(第 3 段)我引用
The InAppBrowser window behaves like a standard web browser, and can't access Cordova APIs.
这意味着没有插件,没有事件,也没有服务。我试图让他们修复文档的这一部分,但这需要一段时间。
关于javascript - Cordova inappbrowser deviceready 从不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134760/
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 6 年前。 Improve t
notificationCenterPublisher = NotificationCenter.default .publisher(for: .NSManagedObjec
我有以下 Rust 代码: #[inline(never)] fn x() -> i32 { 21 } pub fn main() -> i32 { x() } 如果没有优化 (-C
notificationCenterPublisher = NotificationCenter.default .publisher(for: .NSManagedObjec
我有以下 Rust 代码: #[inline(never)] fn x() -> i32 { 21 } pub fn main() -> i32 { x() } 如果没有优化 (-C
假设我的 ASPX 页面没有内联 C# 代码块。 所以,我可以安全地设置 ...在我的 web.config 文件中,不用担心编译错误。 就性能而言,使用以下设置是否会有任何损失? 即“自动”检测
应用程序.js var win1 = Titanium.UI.createWindow({ title:'Tab 1', backgroundColor: 'black', l
基本上,我正在为实现多级优先级队列的 xv6 内核实现一个调度程序。我有一个严重的问题,我不明白,我类(class)的助教不明白,我已经错过了这个项目的最后期限,所以现在帮助我不会给我任何加分 - 但
我想避免 git 自动 merge 我的 composer.json。这样我就可以在 develop 分支中有一个使用 dev-develop 包的 composer.json,而 master 中的
当比较两种不同的算法实现时(因此,不关心它们的绝对性能,而只关心相对性能)我是否最好强制 Java 只运行解释代码? 也就是说,打开 -Xint 标志会更好吗? 最佳答案 我不认为禁用 JIT 会更好
class A{ const size_t number; public: A(size_t number): number(number) {} void f(){
问题 寻找在以下之间切换的方法: 总是 从不 仅在静默模式下 仅当不处于静默模式时 这些选项在手机上的路径---菜单>>设置>>声音>>振动---找到。 通过手机导航很容易更改(顺便说一句,我的手机是
如何设置电源设置关闭:从不(关闭显示器=从不,让计算机进入休眠状态=从不),通过c#代码 最佳答案 这个问题中给出的链接可以告诉你一个方法。 Programmatically change Windo
我是一名优秀的程序员,十分优秀!