我正在为我的学校开发一个简单的应用程序,它将向您展示网站上的最新更新,但在 AIR 中检查互联网连接似乎有点问题。
我会更具体:
我正在使用 Adobe Flash CS6 开发应用程序(使用 AIR for android)
该应用程序包含一个菜单和“互联网框架”,其中的代码实际上不起作用。
我已经尝试了几件事:URLMonitor(like is available = true)、URLLoader(如果在没有互联网连接时发生 IOError) 和 HTMLLoader 之类的东西(很久以前:P,没有成功)
URLLoader 工作“正常”,但我还需要知道当有活动的互联网连接时网页是否不可用(404),但在这两种情况下,它只会抛出相同的“流错误”,所以我可以区分它们。这就是为什么它不适合我的需求。
URLMonitor 也可以“正常”工作,但问题来了:
在模拟器上测试应用程序时,它可以毫无问题地检测到没有互联网连接。但是,当导出到 .apk 并在我的 android 设备上运行时,它无法成功检测到互联网连接。
这是我的代码:
var monitor:URLMonitor = new URLMonitor(new URLRequest("http://www.google.nl"));
monitor.addEventListener(StatusEvent.STATUS, netConnectivity);
monitor.start();
function netConnectivity(e:StatusEvent):void
{
if(e.target.available)
{
//checking the content
output_txt.text += "\ninternet available";
loader = new URLLoader(new URLRequest(webURL));
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorLoader);
loader.addEventListener(Event.COMPLETE, onCompleteLoader);
}
else
{
//
//
// NO INTERNET CONNECTION AVAILABLE!
//
//
output_txt.text += "\nno internet available";
popupnoconnection_mc.alpha = 100;
popupnoconnection_mc.play();
popupnoconnection_mc.addEventListener(MouseEvent.MOUSE_DOWN, BackToMenu);
}
monitor.stop();
}
如您所见,它向 URLMonitor 添加了一个 EventListener,开始检查,该函数检查 Internet 连接的可用性。适用于模拟器,不适用于我的设备。
更有趣的是: 在我的设备上起作用的是互联网连接时。它只会在我的输出字段中显示文本,但在没有互联网连接时不会!此外,在设置了互联网连接的情况下启动应用程序,然后进入此框架,然后返回主菜单,然后关闭互联网,然后再次进入此框架,此代码突然运行良好!
所以它必须与 URLMonitor 的创建有关,并且我猜想在同一帧检查连接,但我需要一点帮助!
我认为这不会太难!
非常感谢您!(抱歉有错别字)