该链接说使用方法“ReadAndExecute”或“DownloadAndExecute”,但我在 ChakraBridge 库的任何类中都找不到这些方法。
这两种方法应该由coder定义。它们记录在ChakraBridge GitHub 站点中。它们如下所示:
async Task ReadAndExecute(string filename)
{
//"js" is the folder name of your javascript library.
var script = await CoreTools.GetPackagedFileContentAsync("js", filename);
host.RunScript(script);
}
async Task DownloadAndExecute(string url)
{
var script = await CoreTools.DownloadStringAsync(url);
host.RunScript(script);
}
因此,要将 *.js 文件注册到 ChakraBridge 上下文中。只需调用这两个方法,如下所示:
string url = @"http://cdnjs.cloudflare.com/ajax/libs/mathjs/3.2.1/math.js";
await DownloadAndExecute(url);//load math.js from remote source.
await ReadAndExecute("math.js");//load math.js from local source.
await ReadAndExecute("main.js");//main.js is the custom js codes. You can utilize math.js here.
这是我制作的基本演示的链接:ChakraBridgeSample
笔记:
- Newtonsoft.Json 应该在您的项目中作为前期工作引用。它可以通过在 Nuget 包管理器上搜索或通过 Nuget 包管理器控制台安装:“Install-Package Newtonsoft.Json”。
注册 CommunicationManager.OnObjectReceived 事件的行为与 GitHub 文档略有不同。不再有类型参数(只有数据参数)。所以在 javascript 方面,sendToHost 函数应该如下所示:
var data = math.atan2(3, -3) / math.pi;
// "Double" should match the typeof(Double) in C# side. Capitalizing is necessary.
sendToHost(JSON.stringify(data), "Double");