我正在尝试使用HTML5在线和离线事件准确地检测浏览器何时脱机.
这是我的代码:
<script>
// FIREFOX
$(window).bind("online", applicationBackOnline);
$(window).bind("offline", applicationOffline);
//IE
window.onload = function() {
document.body.ononline = IeConnectionEvent;
document.body.onoffline = IeConnectionEvent;
}
</script>
Run Code Online (Sandbox Code Playgroud)
当我在Firefox或IE上点击"脱机工作"时,它工作正常,但是当我实际拔掉电线时它会随机工作.
检测此变化的最佳方法是什么?我想避免重复带有超时的ajax调用.
有没有办法检查使用Swift的互联网连接是否可用?
我知道有很多第三方库可以做到这一点,但它们都是用Objective-C编写的.我正在寻找一个Swift替代品.
我有一个应用程序,我希望能够用于从远程查询获取连接状态报告.
我想知道WiFi是否已连接,以及是否通过移动网络启用了数据访问.
如果WiFi超出范围,我想知道我是否可以依赖移动网络.
问题是当我通过WiFi连接时,启用的数据总是返回为真,并且我只能在未通过WiFi连接时正确查询移动网络.
我看到的所有答案建议轮询以查看当前的连接是什么,但我想知道我是否需要移动网络,即使我目前可能通过WiFi连接.
无论如何判断移动网络数据是否在没有轮询的情况下启用以查看是否已连接?
编辑
因此,当通过WiFi连接时如果我转到设置并取消选择"数据已启用",然后在我的应用程序中执行此操作:
boolean mob_avail =
conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isAvailable();
Run Code Online (Sandbox Code Playgroud)
mob_avail返回为'true',但我已禁用移动网络数据,所以我希望它是'false'
如果我关闭WiFi,则(正确)没有连接,因为我已禁用移动网络数据.
那么当我通过WiFi连接时,如何检查移动网络数据是否已启用?
UPDATE
我按照ss1271的评论中的建议查看了getAllNetworkInfo()
我在以下3个条件下输出了有关移动网络的信息
WiFi关闭 - 移动数据
WiFi On - 移动数据关闭
WiFi On - 移动数据
并得到以下结果:
WiFi关闭:
mobile [HSUPA],state:CONNECTED/CONNECTED,reason:unknown,extra:internet,roaming:false,failover:false,isAvailable:true,featureId:-1,userDefault:false
WiFi On/Mobile OFF
NetworkInfo:type:mobile [HSUPA],state:DISCONNECTED/DISCONNECTED,reason:connectionDisabled,extra:(none),漫游:false,failover:false,isAvailable:true,featureId:-1,userDefault:false
WiFi On/Mobile On
NetworkInfo:type:mobile [HSPA],state:DISCONNECTED/DISCONNECTED,reason:connectionDisabled,extra:(none),漫游:false,failover:false,isAvailable:true,featureId:-1,userDefault:false
因此,您可以看到isAvailable每次都返回true,并且状态仅在WiFi处于影响状态时显示为Disconnected.
澄清
我不看,看看我的手机是目前移动网络连接.我AM试图建立用户是否已经启用了移动网络/禁用数据访问.他们可以通过转到设置 - >无线和网络设置 - >移动网络设置 - >数据启用来打开和关闭此功能
我的公司要求VPN连接到我们的开发系统,这是我第一次尝试在家里安装Android应用程序.事实证明,模拟器不想使用VPN接口,所以即使我在连接VPN的笔记本电脑上连接到我们的开发系统,其上运行的模拟器也没有.
我想到了3个解决方案:
2和3可能会工作,但我仍然想知道是否有一种简单的方法可以让仿真器使用VPN接口而无需解决方法.
我正在运行OS X 10.7并且我已经尝试使用网络>>设置服务订单调整接口优先级顺序.
我想我可以把旧戴尔掸掉并在那里试一试,但我希望得到同样的结果.
我希望AFNetworking
在Objective-C中使用与Swift中的Alamofire NetworkReachabilityManager 类似的功能:
//Reachability detection
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN: {
[self LoadNoInternetView:NO];
break;
}
case AFNetworkReachabilityStatusReachableViaWiFi: {
[self LoadNoInternetView:NO];
break;
}
case AFNetworkReachabilityStatusNotReachable: {
break;
}
default: {
break;
}
}
}];
Run Code Online (Sandbox Code Playgroud)
我目前正在使用监听器来了解网络状态的变化
let net = NetworkReachabilityManager()
net?.startListening()
Run Code Online (Sandbox Code Playgroud)
有人可以描述如何支持这些用例吗?
我需要放慢速度(模拟坏的)互联网连接,我找到了一些文档,它是通过"ipfw pipe"命令实现的,事情是在最新的MAC OS版本中,ipfw被弃用(并被删除)......
我想知道是否有替代ipfw API?有谁知道最新的Network Link Conditioner如何实现它?
以前的原始方式可以减慢互联网连接速度:
sudo ipfw pipe 1 config bw 56Kbit/s delay 200 plr 0.2
Run Code Online (Sandbox Code Playgroud)
并清除管道:
sudo ipfw delete 1
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在开发Windows Phone 8应用程序.在这个应用程序中,我必须连接到服务器以获取数据.
所以在连接到服务器之前,我想检查互联网连接是否可用于设备.如果互联网连接可用,那么我只会从服务器获取数据,否则我将显示错误消息.
请告诉我如何在Windows Phone 8中执行此操作.
我正在C#中实现一个发现协议(DNS-SD).我有一个小问题:当我的程序运行时,我需要检测何时建立新连接(网络电缆插入或wifi连接),以便在这些网络上宣布自己.
但是如何检测呢?我已经看到一些代码来获取网卡的当前状态,但没有事件,我想避免对网卡状态进行一些轮询.
我在这个函数中遇到了很多不同的问题:
public static bool UploadToFTP(string strFileName, string strFolderName)
{
bool isUploaded = false;
string strFilename = string.Empty;
string strFtpURI = string.Empty;
string strFtpUserId = string.Empty;
string strFtpPassword = string.Empty;
byte[] buffer = null;
FileInfo oFileInfo = null;
FileStream oFileStream = null;
FtpWebRequest oFtpWebRequest = null;
try
{
strFilename = strFileName;
oFileInfo = new FileInfo(strFilename);
strFtpURI = Constants.FtpUri;
strFtpUserId = Constants.FtpUserID;
strFtpPassword = Constants.FtpPassword;
oFtpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(strFtpURI + "/" + strFolderName + "/" + oFileInfo.Name));
oFtpWebRequest.Credentials = new NetworkCredential(strFtpUserId, strFtpPassword); …
Run Code Online (Sandbox Code Playgroud)