AIR 从 StageWebView 获取LocationChangeEvent.LOCATION_CHANGING上的



我正在构建一个基于 HTML 的 AIR 应用程序,为了调用 ActionScript 方法,我在 HTML 应用程序的 URL 上附加了具有特定模式 (#AIRBRIDGE_methodName_arguments) 的哈希标记。使用 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);
    }

代替 #(哈希锚定),对 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。 所以也要检查一下。

我想如果您的

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

相关内容

  • 没有找到相关文章

最新更新