0

HTML ベースの AIR アプリを作成しています。ActionScript メソッドを呼び出すために、特定のパターン (#AIRBRIDGE_methodName_arguments) を使用して HTML アプリの URL にハッシュ タグを追加します。window.location = '#AIRBRIDGE_methodName_arguments'; の使用 HTML アプリの JavaScript で AIR LocationChangeEvent.LOCATION_CHANGING イベントを呼び出しますが、StageWebView.location 値にアクセスしようとするとハッシュが返されません。

誰もこれを経験したことがありますか?ActionScript コードは次のとおりです。

public function LoadHtmlPageByName(pageName:String, stage:Stage):void
    {
        stage.scaleMode = StageScaleMode.EXACT_FIT;

        webView = new StageWebView(); 
        webView.stage = stage;
        webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING, onLocationChange);
        webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);

        var htmlPath:String = new File(new File("app:/assets/html/" +  pageName + "#something").nativePath).url;
        webView.loadURL(htmlPath);
    }

    public function onLocationChange(event:LocationChangeEvent):void
    {
        trace("you are now at: ", webView.location);
    }
4

2 に答える 2

3

# (ハッシュ アンカリング) の代わりに、window.location に未知のプロトコルを使用します。

例: window.location="unknown:/and_add_here_your_method_info".

Adobe Air は、LocationChangeEvent.LOCATION_CHANGE または LOCATION_CHANGING を介してそれをトラップできます。

iOS に関する注意事項: EventError.Error もリッスンします。Adobe Air 3.4 を使用している場合、window.location の値が EventError.text に渡されます。ということでこちらもチェック。

于 2012-12-13T07:47:36.900 に答える
0

ページをリロードしないと「場所」は変わらないと思います。ページのタイトルを変更して読むことはできますが、ページをリロードしないと変更されるかどうかはわかりません。

于 2012-12-05T08:13:48.997 に答える