我想使用StageWebView,而不是打开iOS浏览器



我有一个文本字段,它从xml中的随机节点加载动态文本。其中一些节点包含超链接。

下面是我用来设置和加载StageWebView并转到链接的代码,如果我点击的文本有一个url

import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.media.StageWebView;
import flash.geom.Rectangle;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
var webView:StageWebView;
var swvRect:Rectangle;
var swvHeight:Number;
var swvY:Number;
var linkURL:String;
storyTxt.addEventListener(MouseEvent.CLICK, linkClicked);
function linkClicked(e:MouseEvent):void {
var idx:int = e.target.getCharIndexAtPoint(e.localX, e.localY);
trace("Tapped:",idx);
var tf:TextFormat = e.target.getTextFormat(idx);
    if(tf.url != "" && tf.url != null) {
        linkURL = tf.url;
        trace(linkURL);
        if(webView!=null){
            return;
        }
         webView=new StageWebView();
         webView.stage=this.stage;
         webView.viewPort=new Rectangle(0,swvY,stage.stageWidth,swvHeight);
         webView.addEventListener(ErrorEvent.ERROR,onError);
         webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING,onChanging);
         webView.addEventListener(Event.COMPLETE,onComplete);
         webView.loadURL(linkURL);
    }
}

当我点击有链接的文本时,它会打开手机的浏览器[Safari]和StageWebView。有没有办法阻止应用程序切换到浏览器打开链接?

谢谢Daniel

您可以尝试以下操作:

function onChanging(event:LocationChangeEvent):void
{
    //prevents the loading of the new URL
    event.preventDefault();
    //open safari/external browser
    navigateToURL(new URLRequest(event.location));
}

我的代码中没有URLRequest/ULLLoader函数,所以我可以把e.preventDefault()放在哪里?

我想这是因为当我点击超链接文本时,打开浏览器的xml文本中的锚标记。

相关内容

  • 没有找到相关文章

最新更新