当Flex AIR HTML应用遇到浏览器插件
经常有很多软件是可以在浏览器里运行是基于安装了插件的原理,比如Google Earth, 但是将Web地址赋给AIR的HTML Control时,却无法观看到正常效果,AIR应用里面页面上仍然提示需要安装插件。
[解决办法]
[code=PHP][/code]<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initApp()">
<mx:Panel x="0" y="0" width="100%" height="100%" layout="absolute" title="GoViewServiceMonitoring" borderColor="#38C1FA">
<mx:MenuBar x="0" y="0" labelField="@label" fontFamily="黑体" fontSize="14" color="#000000"
itemClick="onClickMenuHandle(event)"
fillAlphas="[1.0, 1.0]" fillColors="[#CBCCCD, #70CFFC, #FE7976, #77FB9F]">
<mx:XMLList>
<menuitem label="选项">
<menuitem label="新建">
<menuitem label="新建连接" type="radio" groupName="one"/>
</menuitem>
<menuitem label="关机"/>
<menuitem label="退出"/>
</menuitem>
</mx:XMLList>
</mx:MenuBar>
<mx:HTML x="0" y="30" location="http://www.baidu.com" id="m_html"/>
</mx:Panel>
<mx:Script>
<![CDATA[
import air.net.URLMonitor;
import mx.events.MenuEvent;
import mx.controls.Alert;
private function initApp():void
{
var loader:URLLoader = new URLLoader();
configureListeners(loader);
var _request : URLRequest = new URLRequest("http://www.renren.com");
loader.load(_request);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function onClickMenuHandle(evt:MenuEvent):void
{
//Controller.CMyMenuHandle.menuBarClickHandle(evt);
}
]]>
</mx:Script>
</mx:WindowedApplication>
[解决办法]
air里自带的那个浏览器内核忘记是什么的了.
总之air里的浏览器并不是用户已装插件的那个浏览器.不是同一个东西.