2012-01-20 13 views
3

StageWebView.loadURL()には解決策がありますが、target = "_ blank"のHTMLページのURLをどのように処理できますか?StageWebView target = "_ blank"を持つURLがありません

モバイルAndroidアプリです。 (TabbedViewApplication)

誰かが助けることを望みます。

Thxを

+1

投票: https://bugs.adobe.com/jira/browse/SDK-32091 – neknova

+0

OK、そう...公式にはバグです。 – neknova

答えて

0

OK、そう私が見つけた可能性があり、この問題の唯一の解決策は、URLLoaderで文字列として(リンクを含む)ページをロードし、その指定された部品を交換することです。最後にStageWebView.loadString()メソッドを介して読み込みます。

サイトが動的でJavaScriptを含む場合、問題が発生します。私はまた絶対的なpathesといくつかの相対的なリンクを置き換えていた。

それだけですが、実際にはStageWebView.loadURL()メソッドを使用して、これらの "_blank"リンクをadobeで読み込むことができることを願っています。

0

は私がStageWebViewので働いたことはないが、私はそれが本当に限られたことを知っています。 HTMLLoaderを使用する場合、_blankに開くときに現在のHTMLLoaderを使用するように指定するカスタムHTMLHostインスタンスを設定できます。しかし、私は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

ありがとうございます。私は、Android App開発用にFlex SDK 4.6を使用しています。 私はすでにLOCATION_CHANGINGイベントを聞いていますが、target = '_ blank'のリンクでは起動しません。それは私が意味するバギーポイントです:) – neknova

0

公式のバグとして宣言されているので、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元:アドビBUGシステムで、この問題のhttps://code.google.com/p/stagewebviewbridge/

+0

別のオプションは、PHPプロキシを使用して、 "_parent"にtarget = "_blank"を変更することです。動的コンテンツの相対パスを絶対パスに変更する – Nicolai