私は単純な echoer PNaCl プラグインを作成しました。このプラグインのメッセージ ハンドラーは、着信メッセージを変更せずに返送するだけです。
class Instance : public pp::Instance {
public:
virtual void HandleMessage(const pp::Var& message_data) {
PostMessage(message_data);
}
};
そして、JavaScript 側では、データが関数であるメッセージを投稿し、同じ関数が返され、応答された関数を実行することを期待しています。
var funcobj = {
tocall: function() { alert('tocall called'); }
}
document.getElementById('echoFunc').addEventListener('click', function() {
console.log(funcobj);
// Post a function to plugin
common.naclModule.postMessage(funcobj);
});
function handleMessage(message_event) {
console.log(message_event);
message_event.data.tocall();
}
残念ながら、 inはもはや関数ではなく、フィールドhandleMessage()
、、、などを持つオブジェクトです。message_event.data.tocall()
defineGetter
defineSetter
lookupGetter
lookupSetter
PPAPI を介して Chrome ブラウザと PNaCl プラグインの間で JavaScript 関数を正しく渡すにはどうすればよいですか?