问题描述
正如标题所述,我有一个Adobe air桌面应用程序,当我单击一个按钮时,我想显示来自远程服务器的一个html内容。
我尝试了两种方法,即HtmlLoader和StageWebView。这些正在打开一个新窗口,但不显示html内容。
我的示例html文件-
<!DOCTYPE html>
<html>
<body>
<h1>My First heading</h1>
<p>My first paragraph.</p>
</body>
</html>
动作脚本代码-
var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD;
windowOptions.type = NativeWindowType.norMAL;
var newWindow:NativeWindow = new NativeWindow(windowOptions);
newWindow.stage.scaleMode = StageScaleMode.NO_SCALE;
newWindow.stage.align = StageAlign.TOP_LEFT;
newWindow.activate();
var htmlLoader:HTMLLoader = new HTMLLoader();
htmlLoader.width = newWindow.stage.stageWidth;
htmlLoader.height = newWindow.stage.stageHeight;
var request:URLRequest = new URLRequest(url);
htmlLoader.load(request);
newWindow.stage.addChild(htmlLoader);
但是htmlLoader没有显示内容。甚至我尝试了异步方法-
htmlLoader.addEventListener(Event.COMPLETE,onComplete);
但即使那样也没有内容!
我尝试过使用here所述的StageWebView,但即使是同样的问题!
var webView:StageWebView = new StageWebView();
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0,stage.stageWidth,stage.stageHeight );
webView.loadURL(url);
我遍历了here中提到的所有示例,不知道是否应该尝试其他任何替代方法。
如何解决此问题?
谢谢。
解决方法
我最近为MacOS和Windows构建了AIR桌面应用程序,并且遇到了StageWebView的许多问题。我最终使用了ANE。
关于上面的代码:
-
未设置url变量。
-
将宽度和高度设置为硬编码整数,以确保宽度或高度未设置为
0
。 -
首先使用受信任的URL(例如
www.google.com
)进行测试,以排除您自己的服务器出现的问题。