我正在开发一个Flex移动应用程序,我使用navigateToURL函数,它将网页打开到默认的Web浏览器中,但是当我点击按钮时,我想将网页打开到应用程序中。
我的应用的完整代码:
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
title="Test">
<fx:Script>
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.display.MovieClip;
import flash.media.StageWebView;
import flash.geom.Rectangle;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.desktop.NativeApplication;
import mx.events.FlexEvent;
private var browser:StageWebView;
protected function onViewCreated(event:FlexEvent):void
{
browser = new StageWebView();
browser.viewPort = new Rectangle(0, 0, 100, 200);
browser.stage = this.stage;
browser.loadURL("http://stackoverflow.com");
}
</fx:Script>
<s:Button x="209" y="67" label="test" click="event" />
</s:View>
答案 0 :(得分:0)
看一下StageWebView课程,它应该适合你想做的事情。
以下是我如何使用它的示例代码:
private var browser:StageWebView;
protected function onViewCreated(event:FlexEvent):void
{
browser = new StageWebView();
browser.viewPort = new Rectangle(0, 0, 100, 200);
browser.stage = this.stage;
browser.addEventListener(Event.COMPLETE, onBrowserLoaded);
browser.loadURL("http://stackoverflow.com");
}
在这种情况下,一旦创建视图,浏览器就会在指定的坐标处打开。但您可以在按钮的单击事件上显示它,或触发弹出窗口或其他视图作为容器。
修改强>: 根据您在第一篇文章中编辑的内容,您只需修复单击处理程序,以便在单击按钮时调用代码。目前它不是。 请尝试以下方法:
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
title="Test">
<fx:Script>
<![CDATA[
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.display.MovieClip;
import flash.media.StageWebView;
import flash.geom.Rectangle;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.desktop.NativeApplication;
import mx.events.FlexEvent;
private var browser:StageWebView;
protected function onButtonClicked(event:MouseEvent):void
{
browser = new StageWebView();
browser.viewPort = new Rectangle(0, 0, 100, 200);
browser.stage = this.stage;
browser.loadURL("http://stackoverflow.com");
}
]]>
</fx:Script>
<s:Button x="209" y="67" label="test" click="onButtonClicked(event)" />
<强> EDIT2 强>: 根据您的要求,您可以使用其他功能关闭浏览器。假设您在单击按钮时想要这样做,它将是这样的:
protected function onButton2Clicked(event:MouseEvent):void
{
browser.dispose();
}
按钮声明(包含在导航按钮中):
<s:actionContent>
<s:Button label="Close Browser" click="onButton2Clicked(event)" />
</s:actionContent>
如果您使用actionContent Toolbar,您应该找到一种有趣的方式来执行您要搜索的内容。
答案 1 :(得分:0)
认为它运作良好,
<s:navigationContent>
<s:Button click="onButtonCClicked(event)" icon="@Embed('logo3/back3.png')"/>
</s:navigationContent>
<fx:Script>
<![CDATA[
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.display.MovieClip;
import flash.media.StageWebView;
import flash.geom.Rectangle;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.desktop.NativeApplication;
import mx.events.FlexEvent;
import flash.display.MovieClip;
import flash.media.StageWebView;
import flash.geom.Rectangle;
private var browser:StageWebView;
protected function onButtonClicked(event:MouseEvent):void
{
browser = new StageWebView();
browser.viewPort = new Rectangle(0, 70, 500, 400);
browser.stage = this.stage;
browser.loadURL("http://stackoverflow.com");
}
protected function onButtonCClicked(event:MouseEvent):void
{
browser.dispose();
navigator.pushView(menu)
}
protected function onButtonRClicked(event:MouseEvent):void
{
browser.reload();
}
]]>
</fx:Script>
<s:Button x="209" y="67" label="test" click="onButtonClicked(event)" />