把手在Phonegap Mobile上不起作用

时间:2017-01-14 20:16:00

标签: javascript cordova handlebars.js phonegap-desktop-app

我正在使用版本0.4.2构建PhoneGap应用程序。

我在我的代码中使用Handlebars模板,我使用这一行编译:

var template = Handlebars.compile($("#myTemplateName").html());

该应用程序在桌面和移动浏览器上按预期运行,但当我尝试使用PhoneGap Developer App(版本1.7.6)测试移动版本时,该行无效。控制台没有显示任何错误输出,但我认为应用程序必须崩溃,因为应用程序变得无响应,并且在该行代码之后的任何警报都没有显示。

我还试过预编译把手模板并使用这一行获取它们:

var template = Handlebars.templates["myTemplateName"];

我得到相同的回复:该应用在浏览器中运行得非常好,但神秘地停止在移动设备上工作。

为什么会这样?

其他可能有用的信息:

  • 与PhoneGap一起,我也在使用jQuery Mobile
  • 我正在使用Handlebars版本4.0.5
  • jQuery Mobile,Handlebars和Handlebars模板包含在我的index.html文件中的脚本标签中(按此顺序)。

修改:根据要求,以下是一个示例:

<!DOCTYPE html>
<html>
<body id="body">

    <!-- Visible Page -->
    <div data-role="page" id="home">If this is visible it's not working.</div>

    <!-- Handlebars Library -->
    <script type="text/javascript" src="/js/handlebars-v4.0.5.js"></script>

    <!-- Handlebars Template -->
    <script id="template-content" type="text/x-handlebars-template">{{data}}</script>

    <!-- jQuery Mobile -->
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>

    <!-- PhoneGap -->
    <script type="text/javascript" src="cordova.js"></script>

    <script>
        $( document ).ready(function() {
            var myTemplate = Handlebars.compile($("#template-content").html());
            $("#home").html(myTemplate({data:"It's working!"}));
        });
    </script>

</body>

在浏览器上我看到“它正在工作”,但使用PhoneGap Developer移动应用程序,我看到“如果这是可见的,它就无法正常工作。”

1 个答案:

答案 0 :(得分:1)

Phonegap可能会将<script type="text/javascript" src="/js/handlebars-v4.0.5.js"></script>更改为<script type="text/javascript" src="file://js/handlebars-v4.0.5.js"></script>

将其更改为<script type="text/javascript" src="js/handlebars-v4.0.5.js"></script>

同时确保jQuery正常工作,因为您正在使用CDN,Phonegap可能没有下载它