在 Awesomium 中运行时,当 YouTube API 生成时,我能否在 C# 中捕获 JavaScript 事件?
我将以下 HTML 加载到我的 Awesomium 浏览器中:
<body>
<div id="player"></div>
<script src="http://www.youtube.com/player_api"></script>
<script>
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: '0Bmhjf0rKe8',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
event.target.playVideo();
}
function onPlayerStateChange(event) {
if (event.data == 0) {
alert('done');
}
}
</script>
</body>
如何在 C# 中捕获 onPlayerStateChange
(或它生成的另一个事件),以便我的应用程序可以在视频结束时使用react?
最佳答案
如果您使用的是 Awesomium.NET 1.7 RC,请执行以下步骤:
- 创建一个全局 JavaScript 对象。请参阅:
CreateGlobalJavascriptObject
- 向全局 JS 对象添加自定义方法,并绑定(bind)到它。请参阅:
JSObject.Bind
从您的
onPlayerStateChange
处理程序中调用自定义方法:function onPlayerStateChange(event) { if (event.data == 0) { myGlobalObject.onPlayerStateChange(); } }
(该示例假设您创建了一个名为 myGlobalObject 的全局 JS 对象,并向其添加了一个 onPlayerStateChange 自定义方法。)
这将触发您在 JSObject.Bind
中定义的 JavascriptMethodEventHandler
。
关于c# - 使用 Awesomium 从 YouTube API 在 C# 中捕获 JavaScript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14594865/