webstageview не загружается на телефон, но работает в эмуляторе - PullRequest
0 голосов
/ 15 ноября 2011

Я пытаюсь получить веб-представление для загрузки локального HTML-файла .... этот код отлично работает на эмуляторе, но когда я запускаю его на моем устройстве Android (работает на Android 2.3), он не работает ..... он просто создает пустое веб-представление, которое никогда не загружает локальный HTML-файл ... функция масштабирования не повреждена, поэтому я знаю, что он открывает веб-сцену, но я никогда не вижу его содержимого ... какой-нибудь совет?я застрял ...

<?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"
    xmlns:ns1="*"
    xmlns:controls="com.flexcapacitor.controls.*"
    actionBarVisible="false" backKeyPressed="onBackKeyPressed(event)"
    creationComplete="view1_creationCompleteHandler(event)" title="{data.image}"
    xmlns:components="com.flexcapacitor.components.*">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        import spark.components.ViewNavigator;

        public var webView1:StageWebView=new StageWebView();


        protected function view1_creationCompleteHandler(event:FlexEvent):void
        {

            webView1.stage=this.stage;
            webView1.viewPort=new Rectangle(0,50,stage.stageWidth, stage.stageHeight);
            var fPath:String=new File(new File("app:/"+data.html).nativePath).url;
            webView1.loadURL(fPath);


        }
        protected function onBackKeyPressed(event:FlexEvent):void{
            webView1.viewPort = null;
            webView1.dispose();
            webView1 = null;
        }


        protected function backbutton_clickHandler(event:MouseEvent):void
        {
            webView1.viewPort = null;
            webView1.dispose();
            webView1 = null;
            navigator.popView();
        }

    ]]>
</fx:Script>
<s:Button id="backbackbutton" x="0" y="0" width="100%" height="50" label="Back" click="backbutton_clickHandler(event)"/>

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

В итоге мне пришлось создать несколько временных файлов, чтобы правильно его открыть ... не знаю, почему это не сработало раньше, хотя эмулятор работал нормально ... вот код, который работает:

<?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"
    xmlns:ns1="*"
    xmlns:controls="com.flexcapacitor.controls.*"
    actionBarVisible="false" backKeyPressed="onBackKeyPressed(event)"
    creationComplete="view1_creationCompleteHandler(event)" title="{data.image}"
    xmlns:components="com.flexcapacitor.components.*">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        import spark.components.ViewNavigator;

        public var webView1:StageWebView=new StageWebView();


        protected function view1_creationCompleteHandler(event:FlexEvent):void
        {

            webView1.stage=this.stage;
            webView1.viewPort=new Rectangle(0,50,stage.stageWidth, stage.stageHeight);
          var fa:File = File.applicationDirectory.resolvePath(data.html);
            var f2a:File = File.createTempDirectory();
            var fb:File = File.applicationDirectory.resolvePath(data.location);
            fa.copyTo(f2a.resolvePath(data.html),true);
            fb.copyTo(f2a.resolvePath(data.location),true);
            webView1.loadURL(f2a.url + File.separator +data.html);


        }
        protected function onBackKeyPressed(event:FlexEvent):void{
            webView1.viewPort = null;
            webView1.dispose();
            webView1 = null;
        }


        protected function backbutton_clickHandler(event:MouseEvent):void
        {
            webView1.viewPort = null;
            webView1.dispose();
            webView1 = null;
            navigator.popView();
        }

    ]]>
</fx:Script>
<s:Button id="backbackbutton" x="0" y="0" width="100%" height="50" label="Back"
          accentColor="#000000" chromeColor="#404040" click="backbutton_clickHandler(event)"
          color="#FFFFFF"/>

0 голосов
/ 15 ноября 2011

Вы добавили папку «app» в путь сборки, чтобы html-файл был включен в сборку выпуска? Если нет, щелкните правой кнопкой мыши свой проект и выберите Свойства> Путь сборки Actionscript> Исходный путь> Добавить папку ...

...