1

我正在使用node.js、express 和jade 开发一个Web 应用程序。我在 Phonegap 应用程序中使用 WebView 看到了以下玉模板:

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 提供

现在,cordova 脚本未加载,因为未显示警报(“就绪”)。此外,如果我按下按钮,设备将不会振动,控制台将显示以下消息:

Uncaught TypeError: Cannot call method 'vibrate' of undefined at http://xx.xxx.xx.x:3000/:5

如何使用jade 包含Phonegap 脚本?我曾尝试仅使用警报加载简单的脚本并且它可以工作,但在这种情况下我不知道它为什么不工作。

有人可以提供建议吗?谢谢。

4

3 回答 3

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>
于 2013-12-30T15:49:06.127 回答
1

随着最近对 cordova 的更改,您应该查看InAppBrowser api。这是处理嵌入在应用程序中的远程页面的推荐方法。

最后,您可能会在应用程序上有一个 index.html,以确保加载了 cordova js api 并且一切正常。然后,您将打开一个针对您的远程页面的 InAppBrowser(请记住在 config.xml 上将其列入白名单以获得更好的体验!)。

于 2013-05-03T21:59:01.380 回答
0

这些永远都行不通。

html 页面需要在客户端(应用程序端)而不是在服务器端(节点)。

例子。在assets\www文件夹上的 android phonegap proyect 中。

我不知道 wat SO 是你的应用程序,但是

应用程序客户端:视图、phonegap、jquery .... 以及所有向节点服务器请求数据的东西。

服务器端: dbStuff,以及所有将数据检索到应用程序请求的东西。

希望能帮助到你。

于 2013-05-02T02:19:24.553 回答