我一直在搜索如何检查我的cordova应用程序的互联网连接(目前针对Android)。我尝试过以下方法:
$.ajax("rss file url", {
contentType: "application/json; charset=utf-8",
dataType: 'jsonp',
crossDomain: true
})
.done(function (data, textStatus, jqXHR) {
//get rss
})
.fail(function (jqXHR, textStatus, errorThrown) {
//no internet alert
})
.always(function () {
//alert("complete");
});
我也试过
function doesConnectionExist() {
var xhr = new XMLHttpRequest();
var file = "file url";
var randomNum = Math.round(Math.random() * 10000);
xhr.open('HEAD', file + "?rand=" + randomNum, false);
try {
xhr.send();
if (xhr.status >= 200 && xhr.status < 304) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
问题是这些在visual studio的涟漪仿真器中工作得非常好,但是当我在Android设备上调试时,我总是得不到任何连接结果。尽管如此,该设备已连接到Wi-Fi。 如果我删除此检查,我的应用程序工作正常。但是,我需要检查互联网连接,因为我的应用程序基本上是一个rss提要阅读器。任何帮助将不胜感激。
我已经尝试了提到的解决方案here我已经发布了$ .ajax代码。问题是该解决方案在纹波仿真器上工作正常。但是当我从VS15发布Android设备上的构建时,我一直没有得到互联网连接结果。
答案 0 :(得分:0)
我会用
document.addEventListener("online", yourCallbackFunction, false);
然后在回调函数中将某种变量设置为true。
“离线”也有同样的事件。
通过这种方式,您还可以处理用户在使用应用时断开连接时会发生的情况。
来源:http://docs.phonegap.com/en/1.8.1/cordova_events_events.md.html#online
答案 1 :(得分:0)
答案 2 :(得分:0)
foreach($foodtrucktypes as $foodtrucktype)
{
$type_id = DB::table('foodtruck_types')
->select('id')
->where('type', '= ', $foodtrucktype)
->get();
echo $foodtrucktype."<br />";
var_dump($type_id);
echo "<br />";
echo "<br />";
}
foreach($locations as $location)
{
$location_id = DB::table('locations')
->select('id')
->where('name', '=', $location)
->get();
echo $location."<br />";
var_dump($location_id);
echo "<br />";
echo "<br />";
}
foreach($partytypes as $partytype)
{
$party_id = DB::table('party_types')
->select('id')
->where('party_type' ,'=', $partytype)
->get();
echo $partytype."<br :>";
var_dump($party_id);
echo "<br />";
echo "<br />";
}
现在在getConnectionStatus内部检查连接。
function doesConnectionExist() {
var xhr = new XMLHttpRequest();
var file = "file url";
var randomNum = Math.round(Math.random() * 10000);
connection=getConnectionStatus();
if(connection){
xhr.open('HEAD', file + "?rand=" + randomNum, false);
try {
xhr.send();
if (xhr.status >= 200 && xhr.status < 304) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
states []数组用于了解你可以操作的所有类型的网络信息。
希望它有所帮助。