我尝试使用custom-url-scheme打开cordova-app。
当我在触发事件后使用它时,我的工作原理如下:
<input id="myInput" onkeydown="checkKey(event);"/>
function checkKey(event) {
if (event.which == 13 || event.keyCode == 13) {
window.open('blablabla'); // call the App
}
};
不幸的是,在我的情况下,按Enter键,后端系统必须检查该值,然后重新加载页面。
所以我试过这个:
document.addEventListener('DOMContentLoaded', function() {
window.open('blablabla'); // call the App
}, false);
这里的问题是没有活动事件,因此chrome会生成一个导航。阻止无法打开应用程序。
有没有办法不通过重新加载页面来丢失事件?
答案 0 :(得分:0)
为什么不:
结论:
答案 1 :(得分:0)
您可以使用DOMContentLoaded
事件代替ondeviceready
事件。这样,在初始页面(索引页面)onDeviceReady()
上,您可以进行验证并在此之后调用应用程序的第一页。
在将用户引导到应用程序的主页之前,我们通常会对登录页面执行此操作。例如 -
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
//get the value
//check event through backend system
window.open('blablabla'); //call the App's first page
}
引自[deviceready][1]
文档 -
deviceready事件的行为与其他事件略有不同。 在deviceready事件触发后注册的任何事件处理程序都会立即调用其回调函数。