一、环境准备
1、安装native client sdk
下载地址: http://commondatastorage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/naclsdk_win.exe
下载后安装在C:\native_client_sdk_0_5_1052
本次试验的两个关键目录project_templates,examples.其中project_templates包含一个模板代码生成,examples中包含示例代码。
2、安装python
下载地址:http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
下载后安装到C:\Python27,在系统环境变量中的Path最后加上;C:\Python27
3、在chrome中启用native client
在chrome浏览器中地址栏输入about:flags 找到native client点击启动,重启浏览器;然后在浏览器地址栏输入about:plugins找到native client点击启动,无须重启浏览器
二、查看示例
进入C:\native_client_sdk_0_5_1052\examples,双击httpd.py,启动python的web server。
在chrome地址栏输入http://localhost:5103/index.html,可查看自带示例。
三、开发示例
1、创建工程
进入控制台:
>cd C:\native_client_sdk_0_5_1052\project_templates
> init_project.py -n helloworld -d ../examples (-n 名称 -d目录)
这时在examples文件下多了一个helloworld目录。改目录有:
helloworld.cc c++代码
helloworld.html 网页代码
scons.bat 编译C++
2、修改代码
打开helloworld.html,新增
function moduleDidLoad() {
HelloTutorialModule = document.getElementById('hello_tutorial');
HelloTutorialModule.addEventListener('message', handleMessage, false);
updateStatus('SUCCESS');
//Send a message to the NaCl module.
HelloTutorialModule.postMessage('hello');
}
HelloTutorialModule.postMessage('hello');将hello字符串提交给c++端处理
打开helloworld.cc
在#include之后添加
namespace {
// The expected string sent by the browser.
const char* const kHelloString = "hello";
// The string sent back to the browser upon receipt of a message
// containing "hello".
const char* const kReplyString = "hello from NaCl";
} // namespace
找到
// TODO(sdk_user): 1. Make this function handle the incoming message.
替换成
if (!var_message.is_string())
return;
std::string message = var_message.AsString();
pp::Var var_reply;
if (message == kHelloString) {
var_reply = pp::Var(kReplyString);
PostMessage(var_reply);
}
编译C++的native client module ,双击helloworld目录底下的scons.bat文件。
编译完成后,生成:
hello_tutorial_x86_32.nexe
hello_tutorial_x86_32_dbg.nexe
hello_tutorial_x86_64.nexe
hello_tutorial_x86_64_dbg.nexe
进入C:\native_client_sdk_0_5_1052\examples
双击httpd.py
在chrome浏览器中输入地址:http://localhost:5103/helloworld/helloworld.html
得到从native client module返回的hello from NaCl
分享到:
相关推荐
谷歌的chrome native client是一种为浏览器编译运行native代码开源的技术,出于维护系统的安全便捷的目的,创造出人们所期望的web应用程序.native技术远远超出了javascript的web编程范畴,使得开发者使用他们自己喜欢的...
总的来说,这个"native-client patch"是为了帮助用户在Chrome浏览器中更流畅地使用IDM下载器,通过提供针对Windows、Mac和Linux的特定补丁,解决了因浏览器限制导致的兼容性问题,让用户可以不受网络限速的影响,...
然而,由于Chrome浏览器的安全策略和沙盒机制,某些第三方扩展可能无法在Chrome中正常运行,这就是为什么需要“Native-Client patch”的原因。原生客户端(Native Client)是Google开发的一种技术,允许编译后的C和...
"Google-Chrome-Native-Messaging" 是一个技术主题,指的是Google Chrome浏览器的一项功能,允许本地应用程序(如C++应用)与Chrome扩展程序通过特定的接口进行通信,这种通信方式基于JSON格式的数据交换。...
**Native Client SDK** ...总之,这个压缩包提供了开发谷歌PPAPI插件所需的基础组件,包括Native Client SDK、Python 2.7和VS2013英文语言包,开发者可以通过这些工具创建高性能的Web插件,并在Chrome浏览器中运行。
JavaScript Web Workers,Chrome Native Client(NaCl)和WebGL着色器的算法艺术作品 这位前 -Kollege ,谁现在是一名数学教授,在1995年已决定一个很好的算法,通过色彩空间转换的图形是让人联想到现代艺术点菜...
Chrome插件Restlet Client - REST API Testing是一款非常实用的工具,专为Web API的调试和测试设计。这款插件支持多种HTTP方法(如GET、POST、PUT、DELETE等),并提供了丰富的功能,使得API测试过程更加高效和便捷...
目前发现chrome浏览器的advanced rest client的功能比较强大。因此介绍一下使用插件的安装与使用。谷歌浏览器advance-rest-client插件安装, 包含所有文档Advanced-REST-client3.1.9 和 启动所需的 definitions.json
在描述中提到,这个扩展程序利用了C++编程语言来实现MAC地址的获取,然后通过Chrome的Native Messaging技术将获取到的数据传递给JavaScript,从而在浏览器环境中使用。 Chrome Native Messaging是一种通信机制,它...
Chrome CEF Client是一款基于Chromium Embedded Framework(CEF)的可执行文件,主要用于开发和测试目的。CEF是一个开源项目,它允许开发者将Chromium浏览器引擎集成到自己的应用程序中,以实现自定义的浏览器功能...
本文将深入探讨这个开源项目"gameboy",它支持多种平台,包括asm.js(一种JavaScript优化格式)、Emscripten(一个LLVM到JavaScript的编译器)以及Chrome的Native Client(NaCl)技术。 首先,让我们关注Gameboy...
Chrome原生消息 作为本机应用程序与 Chromium 或 Google Chrome 扩展程序通信。 有关我的意思的更多信息...( let * ((buffer (chromium-native-messaging:read-from-ext *standard-input* )) (json-object (jsown:pa
本文将详细介绍如何在Microsoft Visual Studio 2010到2015版本中添加PPAPI(Pepper Plugin API)、NACL(Native Client)和PNACL(Portable Native Client)这些插件,以增强开发能力,特别是对于Web应用程序和...
网页和本机应用程序可以使用与其他消息传递API相似的API通过Accops Native Client扩展来交换消息。 支持此功能的本机应用程序必须注册知道如何与扩展进行通信的本机消息传递主机。 Chrome会在一个单独的过程中启动...
它使用 Google Chrome 中的 Google [Native Client] ( ) 运行时。 它目前在运行。 要使用 Osoasso,您必须为所有 Web 应用程序启用 Native Client,即使是那些不是从 Chrome 网上应用店安装的应用程序。 为此,请...