2017-03-06 6 views
6

JavaScriptなしでDOMおよび/またはWebAPI(フルスクリーンAPI)への読み取り/書き込みアクセスを得る方法はありますか?WASMアクセスDOM

私は基本的なアプリケーションをC言語で作成しようとしています(実際にはGC言語からの変換結果です)。ビルドしているアプリはデスクトップアプリとして実行されます(実際のブラウザでは動作しません)ので、必要に応じて環境(レイアウトエンジン)を微調整できます。

答えて

6

WebAssembly最小限の実行可能な製品では、WebAssemblyを呼び出したり、呼び出したりする唯一の方法は、インポートとエクスポートです。将来、WebAssemblyはgain capabilities which allow the embedder expose APIs directlyになるかもしれません。これを埋め込んだブラウザにDOMを含めることができます。

exportsは、Cコードの観点から見ると、WindowsプラットフォームのDLLと同様に、externコールのように見えます。 Emscriptenを使用してCコードをコンパイルする可能性があります(詳細はits documentation "Call JavaScript functions from C/C++"を参照してください)。これは、あなたが求めている質問ではないので、次の質問です。

  1. ブラウザをCコードをコンパイルし、内WebAssembly 以内にそれを実行したい:あなたがいる場合


    は、それはあなたの質問から明らかではありません。

  2. Cコードをコンパイルして、WebAssembly の外部にあるのブラウザで実行します。

またはその両方。

+0

:しかし、その一方で、彼らは唯一のように説明されてスペックに存在するJSオブジェクトを持つWebプラットフォーム&相互運用機能、の言及を削除しているが起こっていますChromium Embedded Framework内に組み込まれているため、組み込みブラウザ内で実行されます。 JSブリッジは本当に私が探しているものではありませんので、今度はスキップして、実際のDOMアクセスを取得したらそれを再考します。 – themihai

+1

あなたは何をお探しですか?あなたのニーズが満たされない場合、私はここに問題を提出することをお勧めします:https://github.com/WebAssembly/design/issues –

+0

それは、JSの部分が追加の摩擦を作成することです。たぶんJSのinterlopが必要な場合、またはWeb /ブラウザのサポートが必須である場合は、それは価値があるかもしれませんが、私は今のところそれをスキップする理由は私のケースではないです。 DOMアクセスはロードマップ上にあることがわかります。私はまだギブスの問題を記入する必要がありますか? – themihai

1

WebAssemblyの人々は、WebAssemblyのどのJSオブジェクトがどのように見えるかについてまだ強いアイデアはありません。

私はPR #1080を見ていますが、これはガベージコレクションのスペックについて、今では自分のレポに分割されています。 > wasmコード - 私はコンパイルされたCを実行しているよ

It's more aspirational that concrete, 
関連する問題