StageWebViewBridge 间歇性初始化

发布于 2024-12-21 08:00:23 字数 1485 浏览 3 评论 0原文

我已成功设置 StageWebViewBridge 以在 AIR 应用程序和 Web 托管 JavaScript 之间进行通信。但是,有时当我启动应用程序时,会引发以下错误:

_serializeObject =>___onDomReady
_serializeObject =>fnCalledFromJS
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at es.xperiments.media::StageWebViewBridgeExternal/parseCallBack()[Flash/es/xperiments/media/StageWebViewBridgeExternal.as:88]
    at es.xperiments.media::StageWebViewBridge/onLocationChange()[Flash/es/xperiments/media/StageWebViewBridge.as:236]

如果应用程序启动成功,则这是跟踪输出。

_serializeObject =>___onDomReady
_serializeObject =>___getFilePaths
_serializeObject =>___onDeviceReady
_serializeObject =>fnCalledFromJS

因此,注册 fnCalledFromJS 回调有时被调用得太早了。

这是我的代码中的事件顺序:

StageWebViewDisk.addEventListener(StageWebviewDiskEvent.END_DISK_PARSING, onInit );
StageWebViewDisk.setDebugMode( false );
StageWebViewDisk.initialize(stage);


function onInit( e:StageWebviewDiskEvent ):void{    
    webView1 = new StageWebViewBridge(19, 43, 400, 262);
    webView1.addEventListener(StageWebViewBridgeEvent.DEVICE_READY, onDeviceReady );    
    webView1.loadURL("http:www.domain.com/ipadMap.php);     
}

function onDeviceReady( e:StageWebViewBridgeEvent ):void {
    webView1.addCallback('fnCalledFromJS', fnCalledFromJS );
    // all is loaded and ok, show the view
    addChild(webView1);

}

有人知道如何防止抛出错误吗?

谢谢,

马克

I have successfully set up StageWebViewBridge to communicate between my AIR app and web hosted JavaScript. However sometimes when I launch the app the following error is thrown:

_serializeObject =>___onDomReady
_serializeObject =>fnCalledFromJS
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at es.xperiments.media::StageWebViewBridgeExternal/parseCallBack()[Flash/es/xperiments/media/StageWebViewBridgeExternal.as:88]
    at es.xperiments.media::StageWebViewBridge/onLocationChange()[Flash/es/xperiments/media/StageWebViewBridge.as:236]

If the app launches successfully this is the trace output.

_serializeObject =>___onDomReady
_serializeObject =>___getFilePaths
_serializeObject =>___onDeviceReady
_serializeObject =>fnCalledFromJS

So it appears that registering the fnCalledFromJS callback is sometimes being called too early.

Here is the sequence of events in my code:

StageWebViewDisk.addEventListener(StageWebviewDiskEvent.END_DISK_PARSING, onInit );
StageWebViewDisk.setDebugMode( false );
StageWebViewDisk.initialize(stage);


function onInit( e:StageWebviewDiskEvent ):void{    
    webView1 = new StageWebViewBridge(19, 43, 400, 262);
    webView1.addEventListener(StageWebViewBridgeEvent.DEVICE_READY, onDeviceReady );    
    webView1.loadURL("http:www.domain.com/ipadMap.php);     
}

function onDeviceReady( e:StageWebViewBridgeEvent ):void {
    webView1.addCallback('fnCalledFromJS', fnCalledFromJS );
    // all is loaded and ok, show the view
    addChild(webView1);

}

Would anyone know how to prevent the error from being thrown?

Thanks,

Mark

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゝ偶尔ゞ 2024-12-28 08:00:23

啊。这是我的错误。我正在调用 JS > AS 函数在网页加载时起作用。

禁用呼叫已解决该问题。

Ah. This was my mistake. I was calling the JS > AS function as the web page was being loaded.

Disabling the call has fixed the issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文