2012-01-20 56 views
3

StageWebView.loadURL()上有任何解决方案,我如何处理HTML页面中具有target =“_ blank”的URL?StageWebView缺少target =“_ blank”的网址

这是一款手机安卓应用。 (TabbedViewApplication)

希望有人能帮助。

THX

+1

投票这个问题Adobe公司BUG系统: https://bugs.adobe.com/jira/browse/SDK-32091 – neknova

+0

OK,所以...它正式成为一个bug。 – neknova

回答

0

行,所以对于这个问题,我可以发现的唯一的解决办法是用URLLoader加载页面(包含链接)作为字符串并替换其规定的部件。最后通过StageWebView.loadString()方法加载它。

当网站动态且包含JavaScript时会发生问题。我还用绝对路径替换了一些相关链接。

就是这样......但我真的希望adobe能够使用StageWebView.loadURL()方法加载这些“_blank”链接。

0

我从来不跟的StageWebView工作,但我知道这是真的有限。使用HTMLLoader时,您可以设置一个自定义HTMLHost实例,该实例指定在打开_blank时使用当前的HTMLLoader。不过,我认为StageWebView并不可行。

public class MyHTMLHost extends HTMLHost 
{ 
    public function MyHTMLHost(defaultBehaviors:Boolean=false) 
    { 
     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; 
    } 
} 
+0

我正在玩这个想法,将页面解析为字符串并用手重建内容......我知道这将是a **中的痛苦! – neknova

+0

HTMLLoader是否可在移动设备上使用? –

+0

不,HTMLLoader不可用... – neknova

0

如果要捕获用户单击StageWebView内部的链接时添加位置更改事件(LocationChangeEvent)的事件侦听器。

这个LocationChangeEvent将包含它们将要到达的URL和目标。然后,您可以阻止加载URL,让它继续(不做任何事)或以任何其他方式处理它,包括加载另一个URL。

如果要加载另一个URL,请先停止使用stageWebView.stop()加载。你也应该调用event.preventDefault()。然后您可以尝试

注意:还有一个名为locationChange的事件可能会有所帮助。

+0

LocationChangeEvent.LOCATION_CHANGING如果在将位置设置为StageWebView之前触发,则会好很多。您可能需要在编译器选项中设置-swf-version = 12,否则该事件不会触发。 – Exort

+0

谢谢。我正在使用Flex SDK 4.6进行Android应用程序开发。 我已经在收听LOCATION_CHANGING事件,但它不会在target ='_ blank'的链接上触发。这就是我的意思是错误点:) – neknova

0

由于它被宣布为官方bug,adobe QA所有者Sanjay C.添加了一条评论:“能够重现与所附项目相关的问题,并发送给IRB。”

所以,希望下一个版本能够提供修复的机会。

致以问候

1

一个选项是StageWebViewBridge。

StageWebViewBridge是flash.media.StageWebView的扩展版本。

  • 使用AS3-JS通信扩展loadString方法。
-Extends Bitmap class, you can modify his x,y,alpha,rotation,visible, etc (Version 1 Beta) 
-Communicates Actionscript with Javascript. 
-Communicates Javascript with Actionscript. 
-Load local files and resources in a easy way. 
-Extends loadString method with AS3 - JS communication. 
-Extends loadString method to load local resources. 
-Lets you take an SnapShot to use as the bitmapData of the bitmap. 

StageWebViewBridge来源:https://code.google.com/p/stagewebviewbridge/

+0

另一种选择是使用PHP代理并将target =“_blank”更改为“_parent”。将相对路径更改为动态内容中的绝对路径 – Nicolai

相关问题