Google商家信息自动填充问题与工作灯 - 无法点按

时间:2014-07-08 22:24:02

标签: cordova ibm-mobilefirst google-places-api google-places worklight-runtime

我试图让Google商家信息自动填充API在WorkLight上运行,但看起来有些不对劲。

使用我的电脑浏览器时,一旦我开始输入地点名称,自动填充建议就可以正常工作,我可以选择一个。但是当在移动设备(Android或iPhone)上运行应用程序时,我能够看到自动完成结果,但是当我点击它们时没有任何反应。

我找到了一些js库,可以让GooglePlaces Autocomplete API更容易运行 - 我的意思是,除了在移动设备上(WorkLight / Cordova App)

我还发现有些人报告了cordova的问题。有些人能够通过添加" needclick"来解决问题。谷歌的元素类,但这对我没有用

这是一个用于测试的JS库: http://ubilabs.github.io/geocomplete/

StackOverflow链接及相关问题:

can't tap on item in google autocomplete list on mobile

有没有人知道可能的解决方案?

4 个答案:

答案 0 :(得分:2)

我刚尝试过,它对我来说很好。这就是我所做的,如果你做了不同的事情,请告诉我们

  1. 创建了一个新的混合应用
  2. 将jquery.geocomplete.js添加到common / js文件夹
  3. 使用api提供的代码示例更新了index.html代码 文档
  4. 经常测试预测(工作正常)
  5. 创建了一个Android环境并在Nexus 7设备上执行它(android 4.4.2) - 工作得很好。
  6. "工作正常"我的意思是当我输入文本字段时,我可以看到提供的选项列表,我可以点击其中一个选项,它将填充文本字段。

    这是index.html的代码

    <!DOCTYPE HTML>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>googleplaces</title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
            <!--
                <link rel="shortcut icon" href="images/favicon.png">
                <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
            -->
            <link rel="stylesheet" href="css/main.css">
            <style type="text/css" media="screen">
            form {
                background: url(https://developers.google.com/maps/documentation/places/images/powered-by-google-on-white.png) no-repeat center right;
            }
    </style>
            <script>window.$ = window.jQuery = WLJQ;</script>
        </head>
        <body style="display: none;">
            <form>
          <input id="geocomplete" type="text" placeholder="Type in an address" size="90" />
          <input id="find" type="button" value="find" />
        </form>
    
            <script src="js/initOptions.js"></script>
            <script src="js/main.js"></script>
            <script src="js/messages.js"></script>
            <script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
            <script src="js/jquery.geocomplete.js"></script>
    
            <script>
      $(function(){
    
        $("#geocomplete").geocomplete()
          .bind("geocode:result", function(event, result){
            $.log("Result: " + result.formatted_address);
          })
          .bind("geocode:error", function(event, status){
            $.log("ERROR: " + status);
          })
          .bind("geocode:multiple", function(event, results){
            $.log("Multiple: " + results.length + " results found");
          });
    
        $("#find").click(function(){
          $("#geocomplete").trigger("geocode");
        });
    
    
    
      });
        </script>
        </body>
    </html>
    

答案 1 :(得分:1)

您是否尝试停止宣传点击事件?

  

$(&#34; p&#34;)。click(function(event){event.stopPropagation(); // Do   某事});

答案 2 :(得分:1)

尝试停止传播

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>event.stopImmediatePropagation demo</title>
  <style>
  p {
    height: 30px;
    width: 150px;
    background-color: #ccf;
  }
  div {
    height: 30px;
    width: 150px;
    background-color: #cfc;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<p>paragraph</p>
<div>division</div>

<script>
$( "p" ).click(function( event ) {
  event.stopImmediatePropagation();
});
$( "p" ).click(function( event ) {
  // This function won't be executed
  $( this ).css( "background-color", "#f00" );
});
$( "div" ).click(function( event ) {
  // This function will be executed
  $( this ).css( "background-color", "#f00" );
});
</script>

</body>
</html>

答案 3 :(得分:1)

如果你使用Ionic,问题是由css属性&#34;指针事件引起的:无&#34;由ionicModal设置;

尝试将此添加到您的css文件中:

.pac-container {
     pointer-events:auto;
}