我已经成功地设置了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);
}
有人知道如何防止错误被抛出吗?
谢谢,马克
啊。这是我的错。在加载网页时,我正在调用JS> AS函数。
禁用通话已修复此问题。