0

我正在构建一个基于 HTML 的 AIR 应用程序,为了调用 ActionScript 方法,我在 HTML 应用程序的 URL 上附加了带有特定模式 (#AIRBRIDGE_methodName_arguments) 的哈希标记。使用 window.location = '#AIRBRIDGE_methodName_arguments'; 在 HTML 应用程序的 JavaScript 中调用 AIR LocationChangeEvent.LOCATION_CHANGING 事件,但是当我尝试访问 StageWebView.location 值时,不会返回哈希值。

有没有人有这方面的经验?这是动作脚本代码:

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。在我使用 Adob​​e Air 3.4 的情况下,window.location 的值被传递给 EventError.text。所以也检查一下。

于 2012-12-13T07:47:36.900 回答
0

我猜如果您的页面没有重新加载,“位置”将不会改变。您可以尝试更改和阅读页面的标题,但我不确定如果页面没有重新加载它会改变。

于 2012-12-05T08:13:48.997 回答