2011-12-09 76 views
1

網絡上的網頁通訊有沒有人成功地使用StageWebViewBridge加載並與在線網頁溝通?StageWebViewBridge負荷和用

http://code.google.com/p/stagewebviewbridge/wiki/Communication

提供都能夠圍繞本地文件的工作文檔和例子(其成功運行),雖然該指令「包括StageWebViewBridge.js」加載的HTML頁面中的文件聽起來很直截了當,可悲的是,它似乎並不奏效。

對於任何想複製我的測試,我在這裏上傳的文件:

http://www.infin8design.com/clients/stack/swvb.zip

我基本上加載從Web服務器的「ExampleCallBackFuncions.html」文件。 我已經包括了StageWebViewBridge.js文件是這樣的...

<script type="text/javascript" src="StageWebViewBridge.js"></script> 

當我測試的電影,我得到正確的設置輸出消息

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

和HTML頁面出現在視口中。但在按下按鈕應該將消息發送到動作,我得到以下錯誤信息:

類型錯誤:錯誤#1009:無法訪問空對象引用的屬性或方法。 處es.xperiments.media::StageWebViewBridge/onLocationChange es.xperiments.media::StageWebViewBridgeExternal/parseCallBack()[/Users/G5TowerIntel/Desktop/maptest/es/xperiments/media/StageWebViewBridgeExternal.as:88] () [/Users/G5TowerIntel/Desktop/maptest/es/xperiments/media/StageWebViewBridge.as:236]

我的目標是從html頁面發回一條消息給ActionScript。

感謝,

馬克

回答

2

你正在做的事情有些不對您的代碼....

你們要聽從DEVICER_READY事件做AS3和js,反之亦然之間的任何通訊之前.. 。

// listen StageWebViewBridgeEvent.DEVICE_READY event to be sure 
// the communication is ok 
view.addEventListener(StageWebViewBridgeEvent.DEVICE_READY, onDeviceReady); 

// add a callback method for the function we like to call from Javascript 
view.addCallback('fnCalledFromJS', fnCalledFromJS); 

// load the localfile demo.html (inside the www dir) 
view.loadLocalURL('http://www.someserver.com/ExampleBasic.html'); 

你可以把我的ExampleBasic和更改與行:

view.loadLocalURL('applink:/ExampleBasic.html');

view.loadURL(的 'http://localhost/ExampleBasic.html');

然後在服務器的HTML文件中添加一行參照js文件

必須工作...

說我......

0

成功!這是我用過的AS3 ...

public var webView1:StageWebViewBridge; 

public function Main() {    
StageWebViewDisk.addEventListener(StageWebviewDiskEvent.END_DISK_PARSING, onInit); 
StageWebViewDisk.setDebugMode(true); 
StageWebViewDisk.initialize(stage); 
} 

function onInit(e:StageWebviewDiskEvent):void { 
trace("onInit"); 
webView1 = new StageWebViewBridge(60, 60, 400, 262); 
webView1.addEventListener(StageWebViewBridgeEvent.DEVICE_READY, onDeviceReady); 
webView1.loadURL("http://www.domain.com/ExampleCallBackFuncions.html"); 
} 

function onDeviceReady(e:StageWebViewBridgeEvent):void { 
trace("onDeviceReady"); 
webView1.addCallback('fnCalledFromJS', fnCalledFromJS); 
addChild(webView1); 

} 

和示例ExampleCallBackFuncions.html文件進行了修改,包括StageWebViewBridge.js文件是這樣的...

<html lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>example</title> 
<script type="text/javascript" src="StageWebViewBridge.js"></script> 
...