在StageWebViewBridge上加载本地html时出错

时间:2013-04-11 09:21:28

标签: html flash flex air stagewebviewbridge

当我尝试在StageWebViewBridge容器上加载本地html时出现此错误:

  

错误#2044:未处理的ErrorEvent: text =加载错误。

代码:

private function onDiskCacheEnd( e:StageWebviewDiskEvent ):void{
    bridge = new StageWebViewBridge( 0, 0, 1280, 720 );
    bridge.loadLocalURL('applink://index.html');
...

index.html位于www文件夹中。

谢谢!

2 个答案:

答案 0 :(得分:0)

从未尝试过这个,但文档(https://code.google.com/p/stagewebviewbridge/wiki/ContentLoading)只使用了一个斜杠。

所以代替: '应用链接://index.html'

文档使用: “应用链接:/index.htm” 明明

答案 1 :(得分:0)

这里StageWebView不能引用你在loadURL()中给出的URL,因为applink是通过文档中的单斜杠来引用的。但我无法尝试使用applink。 StageWebViewBridge不会在其覆盖保护的addEventListener函数中处理ErrorEvent。如果您需要处理此错误事件,则应添加

    override public function addEventListener( type : String, listener : Function, useCapture : Boolean = false, priority : int = 0, useWeakReference : Boolean = false ) : void
    {
        switch( type )
        {
            case ErrorEvent.ERROR:
            case Event.COMPLETE:
            case LocationChangeEvent.LOCATION_CHANGING:
            case LocationChangeEvent.LOCATION_CHANGE:
            case FocusEvent.FOCUS_IN:
            case FocusEvent.FOCUS_OUT:
                _view.addEventListener( type, listener, useCapture, priority, useWeakReference );
                break;
            default:
                super.addEventListener( type, listener, useCapture, priority, useWeakReference );
                break;
        }
    }

还需要删除像

这样的侦听器
  override public function removeEventListener( type : String, listener : Function, useCapture : Boolean = false ) : void
    {
        switch( type )
        {
            case ErrorEvent.ERROR:
            case Event.COMPLETE:
            case LocationChangeEvent.LOCATION_CHANGING:
            case LocationChangeEvent.LOCATION_CHANGE:
            case FocusEvent.FOCUS_IN:
            case FocusEvent.FOCUS_OUT:
                _view.removeEventListener( type, listener, useCapture );
                break;
            default:
                super.removeEventListener( type, listener, useCapture );
                break;
        }
    }

现在您可以通过

处理ErrorEvent
     webView.addEventListener( ErrorEvent.ERROR, onLoadURLErrorTriggered );

并且,你最好给文件url加载本地html文件,如

     var file : File = new File("file-path");
     webView.loadURL( file.url );