[AIR] StageWebView可以和js通信

StageWebView 类别提供简单方法,在不支援HTMLLoader 类别的装置上显示HTML 内容。除了StageWebView 类别本身的方法与属性之外,此类别不提供ActionScript 与HTML 内容之间的互动。因此,(例如) 将无法在ActionScript 与JavaScript 之间传送值或呼叫函数。

使用方法:

var myWebView:StageWebView = new StageWebView();
myWebView.stage = this .stage;
myWebView.loadURL( " http://baidu.com/ " );
myWebView.viewPort = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);

ActionScript与HTML内容之间的互动方法:
虽然官方说明ActionScript与HTML之间不能互动,事实上这是可以解决的. 由ActionScript呼叫Javascript: (ActionScript程序)

myWebView.loadURL( "javascript:myJSFunctionName()" );

由Javascript 呼叫ActionScript: (Javascript 程序)

document.location = JSON.stringify({document.body.scrollWidth,height:document.body.scrollHeight});

在ActionScript 处理Javascript 时的事件(ActionScript 程序)

myWebView.addEventListener( LocationChangeEvent.LOCATION_CHANGING,handleLocationChanging );
function handleLocationChanging( event:LocationChangeEvent ): void 
{
    event.preventDefault();
    var data:Object = JSON.decode( event.location );
    trace( "Width: " + data.width + ", Height: " + data.height );
}

官方资料:http://help.adobe.com/zh_TW/FlashPlatform/reference/actionscript/3/flash/media/StageWebView.html 参考资料: http://voisen.org/blog/2010/10/making-the -most-of-stagewebview/

原文地址:https://www.cnblogs.com/frost-yen/p/9091308.html