0

我正在构建一个 flex 应用程序,它基本上是一些网站的包装器。其中一个是谷歌文档网站,我正在尝试让 flex 允许下载或弹出窗口或允许我这样做的东西。我在网上尝试了一大堆解决方案,但都没有奏效。这是到目前为止的代码:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       width="100%" height="100%"
                        creationComplete="onCreationComplete()">

    <s:layout>
        <s:HorizontalLayout/>
    </s:layout>
    <fx:Style source="style.css"/>
    <fx:Script>
        <![CDATA[

            include "CustomHTMLLoader.as";

            private function onCreationComplete():void
            {
                // ... other stuff ...
                var custom:object;
                custom.htmlHost = new MyHTMLHost();
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:BorderContainer width="100%" height="100%" backgroundColor="#87BED0" styleName="container">
        <s:Panel x="188" y="17" width="826" height="112" borderAlpha="0.15" chromeColor="#0C5A74"
                 color="#FFFFFF" cornerRadius="20" dropShadowVisible="false" enabled="true"
                 title="Customer Service Control Panel">
            <s:controlBarContent/>

            <s:Button id="home" x="13" y="10" height="44" label="Phones"
                      click="myViewStack.selectedChild=Home;" enabled="true"
                      icon="@Embed('assets/iconmonstr-mobile-phone-6-icon-32.png')"/>
            <s:Button id="liveagent" x="131" y="10" height="44" label="Live Agent"
                      click="myViewStack.selectedChild=live_agent;"
                      icon="@Embed('assets/iconmonstr-speech-bubble-11-icon-32.png')"/>
            <s:Button id="bigcommerce" x="260" y="10" width="158" height="44" label="Big Commerce"
                      click="myViewStack.selectedChild=bigcommerce_home;"
                      icon="@Embed('assets/iconmonstr-coin-6-icon-48.png')"/>
            <s:Button id="faq" x="436" y="10" width="88" height="44" label="FAQ"
                      click="myViewStack.selectedChild=freqaskquestions;" fontFamily="Arial"
                      icon="@Embed('assets/iconmonstr-help-4-icon-32.png')"/>
            <s:Button id="call" x="540" y="10" width="131" height="44" label="Google Docs"
                      click="myViewStack.selectedChild=call_notes;"
                      icon="@Embed('assets/iconmonstr-text-file-4-icon-32.png')"/>
            <s:Button id="hoot" x="684" y="10" width="122" height="44" label="HootSuite"
                      click="myViewStack.selectedChild=hoot_suite;"
                      icon="@Embed('assets/iconmonstr-facebook-icon-32.png')"/>
        </s:Panel>
        <mx:ViewStack id="myViewStack" x="0" y="140" width="100%" height="100%" borderStyle="solid">
            <s:NavigatorContent id="Home">
                <s:BorderContainer width="100%" height="100%">
                    <mx:HTML x="0" y="0" width="100%" height="100%" borderVisible="false"
                             horizontalScrollPolicy="off"
                             location="http://mbvphone.mtbakervapor.org/vbx/messages/inbox"
                             />
                </s:BorderContainer>
            </s:NavigatorContent>
            <s:NavigatorContent id="bigcommerce_home">
                <s:BorderContainer width="100%" height="100%">
                <mx:HTML  x="0" y="0" width="100%" height="100%" borderVisible="false"
                         horizontalScrollPolicy="off"
                         location="http://www.mtbakervapor.com/admin"
                         />
                </s:BorderContainer>
            </s:NavigatorContent>
            <s:NavigatorContent id="live_agent">
                <s:BorderContainer width="100%" height="100%">
                    <mx:HTML x="0" y="0" width="100%" height="100%" borderVisible="false"
                             horizontalScrollPolicy="off"
                             location="http://mbvphone.mtbakervapor.org/liveagent/agent/#login"
                             />
                </s:BorderContainer>
            </s:NavigatorContent>
            <s:NavigatorContent id="freqaskquestions">
                <s:BorderContainer width="100%" height="100%">
                    <mx:HTML x="0" y="0" width="100%" height="100%" borderVisible="false"
                             horizontalScrollPolicy="off"
                             location="http://mbvphone.mtbakervapor.org/liveagent/"
                             />
                </s:BorderContainer>
            </s:NavigatorContent>
            <s:NavigatorContent id="call_notes">
                <s:BorderContainer width="100%" height="100%">
                    <mx:HTML id="html" x="0" y="0" width="100%" height="100%" borderVisible="false"
                             horizontalScrollPolicy="off"
                             location="https://drive.google.com/a/mtbakervapor.com/"
                             htmlHost="{new CustomHost()}"
                             />
                </s:BorderContainer>
            </s:NavigatorContent>
            <s:NavigatorContent id="hoot_suite">
                <s:BorderContainer width="100%" height="100%">
                    <mx:HTML x="0" y="0" width="100%" height="100%" borderVisible="false"
                             horizontalScrollPolicy="off"
                             location="https://hootsuite.com/login"
                             />
                </s:BorderContainer>
            </s:NavigatorContent>
        </mx:ViewStack>
        <s:Image x="0" y="0" width="180" height="140" scaleMode="letterbox" smooth="false"
                 source="assets/mbvlogo_black.png"/>
    </s:BorderContainer>
</s:WindowedApplication>

和自定义类代码:

package 
{
    import flash.html.HTMLHost;
    import flash.html.HTMLWindowCreateOptions;
    import flash.html.HTMLLoader;

    public class MyHTMLHost extends HTMLHost
    {
        public function MyHTMLHost(defaultBehaviors:Boolean=true)
        {
            super(defaultBehaviors);
        }

        override public function createWindow(windowCreateOptions:HTMLWindowCreateOptions):HTMLLoader
        {
            // all JS calls and HREFs to open a new window should use the existing window
            return HTMLLoader.createRootWindow();
        }
    }
}

任何帮助,将不胜感激。

4

0 回答 0