如何用玉石加载phonegap / cordova?

时间:2013-05-02 01:16:57

标签: node.js cordova express pug

我正在使用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脚本?我试图加载简单的脚本只是一个警报,它的工作原理,但在这种情况下,我不知道为什么它不起作用。

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

3 个答案:

答案 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,以及检索应用程序请求数据的所有内容。

希望它有所帮助。