我正在使用node.js,express和jade开发Web应用程序。我在Phonegap应用程序中使用WebView看到了以下jade模板:
doctype mobile
html
head
script(src="cordova-2.1.0.js")
script
var ready = function() {
alert(\'Ready\');
}
document.addEventListener("deviceready", ready);
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body
block content
h1= title
button(id='vibrateButton', onclick='navigator.notification.vibrate(2000);')Confirm
#services
- each service in services
div.service
a(href=service.link)!= service.name
div.desc= service.description
此模板将生成的是一个网页,其中包含将从mongo数据库中提取的项目列表(说明和链接)。该页面使用node.js
提供现在,由于未显示警报(“Ready”),因此未加载cordova脚本。此外,如果我按下按钮,设备将不会振动,控制台将显示以下消息:
Uncaught TypeError: Cannot call method 'vibrate' of undefined at http://xx.xxx.xx.x:3000/:5
如何使用jade包含Phonegap脚本?我试图加载简单的脚本只是一个警报,它的工作原理,但在这种情况下,我不知道为什么它不起作用。
有人可以提供建议吗?感谢。
答案 0 :(得分:1)
最近对cordova进行了更改,您应该查看InAppBrowser api。这是处理应用程序中嵌入的远程页面的推荐方法。
最后,你可能在应用程序上只有一个index.html,以确保加载了cordova js api,一切正常。然后,您将打开一个针对您的远程页面的InAppBrowser(请记住在config.xml上将其列入白名单以获得更好的体验!)。
答案 1 :(得分:1)
脚本丢失后的点。阅读本文:
“通常你可能需要标签中的大块文本。一个好的 示例是使用内联脚本或样式。要做到这一点,只需添加一个。 标签后面(没有前面的空格)“
它来自玉器参考。
示例:
script.
if (usingJade)
console.log('you are awesome')
else
console.log('use jade')
将呈现:
<script>
if (usingJade)
console.log('you are awesome')
else
console.log('use jade')
</script>
答案 2 :(得分:0)
这些永远不会奏效。
html页面需要位于客户端(应用程序端)而不是服务器端(节点)。
实施例。在assets\www
文件夹中的android phonegap proyect中。
我不知道wat SO是你的应用程序,但是
App客户端: views,phonegap,jquery ....以及向节点服务器请求数据的所有内容。
服务器端: dbStuff,以及检索应用程序请求数据的所有内容。
希望它有所帮助。