2012-01-20 54 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

相關問題