【问题标题】:Enable Android App to Connect to the Internet启用 Android 应用程序以连接到 Internet
【发布时间】:2014-10-05 14:17:56
【问题描述】:

我使用 Phoegap 创建了一个简单的应用程序,以使用以下 index.html 从远程数据库检索少量记录:

<!doctype html>
<html><head>
<meta charset="utf-8">
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="jquery.mobile-1.4.4.min.css">
<script src="jquery-1.11.1.min.js"></script>
<script src="jquery.mobile-1.4.4.min.js"></script>
<script charset="utf&minus;8" type="text/javascript">
function connect(e)
{
    var term= {button:e};
    $.ajax({
        url:'http://dubaisinan.host22.com/reply.php',
        type:'POST',
        data:term,
        dataType:'json',
        error:function(jqXHR,text_status,strError){
            alert("No Connection");},
        timeout:60000,
        success:function(data){
            $("#result").html("");
                for(var i in data){
                    $("#result").append("<li>"+data[i]+"</li>");
                }
            }
        });     
} 
</script>
</head>
<body>
<center><b>My Students</b></center>
<center><input onclick="connect(this.value)" type="button" value="showStudents" /></center>
<center><b>Results</b></center>
<ul data-role="listview" id="result"></ul>
</body>
</html>

还有下面的reply.php:

<?php
    header('Content-Type: application/json');
    $link = mysql_connect('host_name', 'user-name', 'password');
    if (!$link) 
    {
        $myStudents[] = "No";
        die('Could not connect: ' . mysql_error());
    }
    mysql_select_db("a2808249_db1",$link);  
    $result = mysql_query("SELECT * FROM Students",$link);  

    while ($myrow = mysql_fetch_row($result)) 
    {
        $myStudents[] = $myrow[1];
    }
    print json_encode($myStudents);
 ?> 

它在我的笔记本电脑上运行良好,但是当我使用 Phonegap 构建它并在我的 Note 3 设备上下载 apk 文件时,我收到“无连接”消息。该应用程序似乎无法连接到互联网。该设备有互联网连接。

有什么帮助吗? 思南

【问题讨论】:

  • 您的清单文件中是否有 Internet 权限?
  • strError 说什么?
  • strError 说“无连接”。这是我的 config.xml:w3.org/ns/widgets" xmlns:gap = "phonegap.com/ns/1.0" id = "com.phonegap.example " version = "1.0.0"> PhoneGap Build Application 一个简单的 PhoneGap Build 应用程序。 example.com" email="you@example.com"> 你的名字
  • 我已将 添加到 xml 文件中,但它不起作用。
  • Do you have the internet permission in your manifest file?。请回答这个问题。

标签: php android cordova


【解决方案1】:

添加这些行

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">

您还说要检索,所以这应该是 GET 调用,而不是 POST。

也使用&lt;!DOCTYPE html&gt;(正确的编码标准)

编辑:GET 调用示例

$.ajax({
                url: "http://abcd.com",
                headers: {
                    "X-API-KEY": "2b9asdedqedqxdqd7956e6f7a",
                    "Content-Type": "application/json"
                },
                type: "GET",
                data: fromDatan,
                dataType: "JSON",
                success: function(fromData, status, jqXHR) {
                    alert(JSON.stringify(fromData));
                },

                error: function(jqXHR, status) {
                    alert(JSON.stringify(jqXHR));
                }
                });

编辑:这是一个可以 POST 到测试服务器的示例代码

<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script language="javascript" type="text/javascript">
        <!--
        function greeter() {

          var accx = 5;
          var accy = 6;
          var accz = 7;


                var output = [];
                output[0] = {
                        name: "Accel_X",
                        value: accx.toString(), // retrieve x
                    };
                    output[1] = {
                        name: "Accel_Y",
                        value: accy.toString(), // retrieve y
                    };
                    output[2] = {
                        name: "Accel_Z",
                        value: accz.toString() // retrieve z
                    };


                var fromData = {};
                fromData.output = output;

                var fromDatan = JSON.stringify(fromData);
                alert(fromDatan);


                jQuery.ajax({
                    url: "http://posttestserver.com/post.php",
                    type: "POST",

                    data: fromDatan,

                    dataType: "JSON",

                    success: function(fromDatan, status, jqXHR) {
                        alert(JSON.stringify(fromData));
                    },

                    error: function(jqXHR, status) {
                        alert(JSON.stringify(jqXHR));
                    }

                    /*
                    error:function(jqXHR,text_status,strError){
            alert("No Connection");},
        timeout:60000,
        success:function(data){
            $("#result").html("");
                for(var i in data){
                    $("#result").append("<li>"+data[i]+"</li>");
                }
            }*/
                });
                return false;
            }
            //-->
    </script>
</head>

<body>
    <button onclick="greeter();">Click me</button>
</body>

</html>

我尝试了您的网址,但无法正常工作。不过如果可以的话会告诉你的

【讨论】:

  • 谢谢阿努帕姆。仅添加了 和第一个脚本行。第二个给我一个关于“var term= {button:e};”的语法错误。将 POST 更改为 GET。我仍然在设备上收到“无连接”。它在笔记本电脑上运行良好。请问还有什么建议吗?
  • 您要在变量中分配一个按钮?我对此一无所知。
  • 感谢 anupam_on。其他人有什么帮助吗?
  • 刚刚打印 strError 并在设备上显示:“SyntaxError: Unexpected token
  • Also you said you want to retrieve, so this should be a GET call , not POST.。不,这与检索或发送无关。 POST 会好的。此外,这里的问题是它没有先连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
相关资源
最近更新 更多