当前位置: 首页 > news >正文

网站 视觉上网站开发对算法有要求么

网站 视觉上,网站开发对算法有要求么,jsp租房网站开发,上海房产网二手房出售信息Electron调用nodejs的cpp .node扩展【非安全】 环境: electron: 30.1.1 nodejs: 20.14.0前言 Electron中可以非常容易的调用nodejs的js代码,但是对于cpp .node扩展需要一定的配置才能调用,下面介绍一种最简单的cpp扩展的调用方法&#xff…

Electron调用nodejs的cpp .node扩展【非安全】

环境:

electron: 30.1.1
nodejs: 20.14.0

前言

Electron中可以非常容易的调用nodejs的js代码,但是对于cpp .node扩展需要一定的配置才能调用,下面介绍一种最简单的cpp扩展的调用方法,该方法的优点是调用简单,缺点是会降低应用程序的安全性,生产环境中需谨慎使用。

代码

$ tree
.
+--- build
|   +--- Release
|   |   +--- addon.node
+--- addon.cpp
+--- binding.gyp
+--- CMakeLists.txt
+--- index.html
+--- index.js
+--- package.json

index.html

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>Hello Electron</title><meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline';">
</head><body><p id="version"></p><p id="napi"></p><script>let info = `electron: ${process.versions.electron}, nodejs: ${process.versions.node}, chrome: ${process.versions.chrome}, v8: ${process.versions.v8}`;document.getElementById("version").innerHTML = info;console.log(info);const addon = require('./build/Release/addon.node');info = addon.hello();document.getElementById("napi").innerHTML = info;console.log(info);</script>
</body></html>

index.js

const { app, BrowserWindow } = require('electron/main');
// app.commandLine.appendSwitch('remote-debugging-port', '9222');const createWindow = () => {const win = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true,contextIsolation: false}})win.loadFile('index.html');
}app.whenReady().then(() => {createWindow();
})

addon.cpp

#include <node_api.h>static napi_value helloMethod(napi_env env, napi_callback_info info)
{napi_value result;napi_create_string_utf8(env, "hello world from napi", NAPI_AUTO_LENGTH, &result);return result;
}static napi_value Init(napi_env env, napi_value exports)
{napi_property_descriptor desc = {"hello", 0, helloMethod, 0, 0, 0, napi_default, 0};napi_define_properties(env, exports, 1, &desc);return exports;
}NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)

binding.gyp

{"targets": [{"target_name": "addon","sources": [ "addon.cpp" ]}]
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.12)project(addon)message(STATUS "operation system is ${CMAKE_SYSTEM}")add_definitions(-std=c++11)include_directories(${CMAKE_JS_INC})
include_directories(.)file(GLOB SOURCE_FILES addon.cpp)add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC})set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})

package.json

{"name": "my-electron-app","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "electron ."}
}

编译

node-gyp configure build

结果

electron: 30.1.1, nodejs: 20.14.0, chrome: 124.0.6367.243, v8: 12.4.254.20-electron.0hello world from napi

禁用 contextIsolation 和启用 nodeIntegration,会降低应用的安全性。务必谨慎使用,并确保你信任加载的所有代码和资源。

http://www.yayakq.cn/news/361047/

相关文章:

  • 南昌微网站建设qq创号申请注册网站
  • 横岗做网站企业查询免费网站
  • 建网站公司 深圳网站的关键词挖掘方式
  • 瓯北网站制作公司seo服务的三种方式
  • 济南公司网站建设公司哪家好市场营销案例分析
  • 哪家购物网站做的好单身男女免费观看国语高清
  • 二级网站南宁小程序定制开发
  • 大学生网站建设与网页设计报告黄石做网站联系
  • 大学生对校园网站建设的需求是什么网站大全全部免费
  • 免费网站建设那个好网站开发制作心得
  • 网站开发税率网页开发者模式怎么打开
  • 网站app生成器下载企业网络营销策略
  • 四川省建设厅门户网站网站开发项目对自身的意义
  • 内部网站建设依据文件河北商城网站建设价格
  • 龙岗网站建设推广报价关键词app
  • 只做域名跳转和关停网站lnmp搬家wordpress
  • 微信网站页面制作东莞建网站公司
  • 爱站网seo查询低功耗集成主板做网站
  • 合肥做网站的公司百度湘潭做网站价格 d磐石网络
  • 网站字头优化让顾客心动的句子
  • 公司电商网站开发合同网站怎么做图片超链接dw
  • 和孕妇做网站网站建设中 敬请期待怎么解决
  • 重庆网站首页排名公司营销型企业网站制作公司
  • 邦拓网站建设不会编程怎么做网站
  • 优秀 网站设计 蓝色企业oa办公软件
  • 邵阳网站seo网站优化的意义
  • 电商网站成品案例网页制作的视频
  • 静态网站被同行使用fr后缀网站
  • 国外游戏商城网站欣赏wordpress demo数据
  • 东莞网站建设星河wordpress图片主题下载