在flex移动应用程序中打开网页

时间:2014-01-28 14:17:09

标签: android flex mobile web adobe

我正在开发一个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>

2 个答案:

答案 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)" />