【问题标题】:intel-xdk html5 platform android aplication working properly in emulator but not working properly in deviceintel-xdk html5平台android应用程序在模拟器中正常工作但在设备中无法正常工作
【发布时间】:2015-08-14 00:31:13
【问题描述】:

我使用 javascript 函数 getApi() 包含了一个 php 文件,它在我的 intel-xdk 模拟器中正常工作,但是当我将它加载到我的 android 设备时,它无法正常工作 所以请告诉我我的代码有什么问题,而且我的设备也连接到互联网,所以它可能能够从服务器检索数据,但它不能

<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <link rel="stylesheet" type="text/css" href="app_framework/css/af.ui.min.css">
  <link rel="stylesheet" type="text/css" href="app_framework/css/icons.min.css">
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="css/index_main.less.css" class="main-less">
  <title>Your New Application</title>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
  <style type="text/css">
    /* Prevent copy paste for all elements except text fields */
    *  { -webkit-user-select:none; -webkit-tap-highlight-color:rgba(255, 255, 255, 0); }
    input, textarea  { -webkit-user-select:text; }
  </style>
  <script src="intelxdk.js">
</script>
  <script type="text/javascript">
    /* This code is used to run as soon as Intel activates */
    var onDeviceReady=function(){
      //hide splash screen
      intel.xdk.device.hideSplashScreen();
    };
    document.addEventListener("intel.xdk.device.ready",onDeviceReady,false);
  function getApi() {
                           alert("Yes");
                            $.ajax({
                            type: "GET",
                            url: "http://exam.coreducation.in/api.php",
    success: function(data){
var total = "";
var record = JSON.parse( data );
for(i=0; i<record.length; i++){
total += ("Contact: "+record[i]['contact']+", Name: "+record[i]['name']+", City: "+record[i]['city'] + "<br/>");
}
$('#ddata').html("<h4 style='text-align:center'>"+total+"</h4>")
    }
  });
}    
    </script>
  <script type="application/javascript" src="app_framework/appframework.min.js"></script>
  <script type="application/javascript" src="app_framework/appframework.ui.min.js"></script>
</head>

<body id="afui">

  <!-- content goes here-->
  <div class="uwrap" id="content">
    <div class="upage panel" id="page0" data-header="none" data-footer="none">
      <div class="upage-outer">
        <div class="upage-content">

          <div class="grid grid-pad urow uib_row_1 row-height-1" data-uib="layout/row">
            <div class="col uib_col_1 col-0_12-12" data-uib="layout/col">
              <div class="widget-container content-area vertical-col">

                <a class="button widget uib_w_1 d-margins icon graph" data-uib="app_framework/button" onclick="return getApi();">GetApiData</a><span class="uib_shim">
                  </span>
            <div id="ddata">DAta Will Show Here</div>
                </div>
            </div>
            <span class="uib_shim"></span>
          </div>
        </div>
        <!-- /upage-content -->

      </div>
      <!-- /upage-outer -->

    </div>


  </div>
  <!-- /uwrap -->
</body>

</html>`enter code here`

【问题讨论】:

    标签: html


    【解决方案1】:

    由于跨域访问,该 api 被阻止,这与您的代码无法在任何浏览器中运行的原因相同。但是有一种方法可以让它在英特尔 XDK 应用程序中运行,只需在包含 intelxdk.js 脚本后添加&lt;script src="xhr.js"&gt;&lt;/script&gt;。然后它将在设备上运行。

    在此处了解有关 AJAX 和 XDK 的更多信息:http://software.intel.com/en-us/html5/articles/how-to-access-JSON-data-in-HTML5-apps

    【讨论】:

      【解决方案2】:

      我使用domain whitelistening解决了类似的问题。

      在英特尔 XDK 中,可以通过以下步骤完成:

      打开项目选项卡

      扩展构建设置

      在域列表字段中输入“*”(不带引号)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-28
        • 1970-01-01
        • 2015-09-27
        • 2015-12-06
        • 1970-01-01
        • 1970-01-01
        • 2016-06-04
        • 2015-06-18
        相关资源
        最近更新 更多