【问题标题】:How to use Google Endpoints with Sencha Touch?如何通过 Sencha Touch 使用 Google Endpoints?
【发布时间】:2013-04-15 04:47:29
【问题描述】:

我使用 Google Cloud Endpoints 为我的后端开发了一个原型。一旦在 Sencha Touch 上开发,我现在正在努力寻找一种方法来创建我的客户端。
我对 Sencha 没有深入的了解,但在这方面工作的团队表示不可能拥有本机代码。因此,我们的客户端必须使用 JavaScript 开发。
例如,js 客户端在 appengine 应用程序中完美运行,但我在 Sencha 方面没有进展。
有人知道我该如何处理吗?有什么建议或更好的方法吗?

提前致谢!

【问题讨论】:

    标签: javascript google-app-engine sencha-touch-2 google-cloud-endpoints


    【解决方案1】:

    我假设您正在使用此处描述的回调方法https://developers.google.com/appengine/docs/java/endpoints/consume_js

    <script src="https://apis.google.com/js/client.js?onload=init">
    </script>
    

    只需在 Sencha Touch 项目中包含您用于后端的 google api js。

    这里有一个推荐的使用外部js的方法:What is the proper way to load an external javascript in Sencha Touch 2

    如果您无法让 init 函数工作,或者事实证明您需要立即加载它,我想您可以将它放在 index.html 中,但出于加载时间原因,警告不要这样做。

    【讨论】:

    • 我试图将它添加到一个普通的 html 文件中,但它不起作用,它无法识别“gapi”。我会在 Sencha 上做,并提供反馈。
    【解决方案2】:

    这是我所做的:

    • 在项目中添加了所需的 JS 文件(正如 user1258245 所指出的,关键是包含 JS 文件(在我的情况下为 Client JS 和 Base JS)) 文件夹

    • 在我的 index.html 中链接它们

    • 添加了在 OnLaunch() 函数上初始化我的 API 调用的方法。所以, 它在应用加载/启动时被初始化。

    • 为了确保收到响应,我创建了一个带有显示响应方法的按钮。在方法内部,我必须调用带有参数的“执行”方法来从后端获取响应。

    【讨论】:

      【解决方案3】:

      如果我理解正确,您的问题是“如何将 google MAPS API 与 Sencha 应用程序一起使用”。目前您的应用程序无法识别 google apps API。

      我在应用程序文件中进行了以下更改。

      index.html

      <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
      

      app.js

      // 设置命名空间如下,并在touch/src/lib/plugin下添加google库

      Ext.Loader.setPath({
          'Ext' : 'touch/src',
          'WU' : 'app',
          'Ext.plugin': 'lib/plugin'
      });
      

      // 在 requires 配置中添加所需的类

      要求:['Ext.MessageBox','Ext.plugin.google.Traffic','Ext.plugin.google.Tracker'],

      启动:函数(){

          //Tracking Marker Image
         var image = new google.maps.MarkerImage(
              'resources/images/point.png',
              new google.maps.Size(32, 31),
              new google.maps.Point(0, 0),
              new google.maps.Point(16, 31)
          );
      
        var shadow = new google.maps.MarkerImage(
              'resources/images/shadow.png',
              new google.maps.Size(64, 52),
              new google.maps.Point(0, 0),
              new google.maps.Point(-5, 42)
          );
      

      希望对你有帮助。

      【讨论】:

      • 嘿,谢谢,但这不是真正的 MAPS,我正在使用 appengine+endpoint 创建后端!无论如何,我会检查 MAPS 在那里的工作原理。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 2013-12-06
      • 2023-03-27
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      相关资源
      最近更新 更多