Electron 在 mac上无法复制粘贴

electron 研究笔记 使用electron有一阵子了,随着项目推进,需要研究的东西也逐渐多起来。总结了以下,问题主要出现在: - 跨平台兼容性 - 新的功能需求 electron 渲染进程模拟浏览器环境electron渲染进程默认为nodejs环境,在里面你可以调用require引入第三方模块,但有时候我们想要的是一个真实的浏览器环境。electron需要做的配置如下: var mainWindow = 阅读详情

在mac上复制(command+c)和粘贴(command+c)无法使用是因为缺少应用菜单与键盘和剪切板的绑定。

想让复制粘贴可用的话需要通过Menu.setApplicationMenu()来配置应用菜单 

var app = require("app");
var BrowserWindow = require("browser-window");
var Menu = require("menu");
var mainWindow = null;

app.on("window-all-closed", function(){
    app.quit();
});

app.on("ready", function () {
    mainWindow = new BrowserWindow({
        width: 980,
        height: 650,
        "min-width": 980,
        "min-height": 650
    });
    mainWindow.openDevTools();
    mainWindow.loadUrl("file://" + __dirname + "/index.html");
    mainWindow.on("closed", function () {
        mainWindow =  null;
    });

    // Create the Application's main menu
    var template = [{
        label: "Application",
        submenu: [
            { label: "About Application", selector: "orderFrontStandardAboutPanel:" },
            { type: "separator" },
            { label: "Quit", accelerator: "Command+Q", click: function() { app.quit(); }}
        ]}, {
        label: "Edit",
        submenu: [
            { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" },
            { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" },
            { type: "separator" },
            { label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" },
            { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" },
            { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" },
            { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
        ]}
    ];

    Menu.setApplicationMenu(Menu.buildFromTemplate(template));
});

用DeepSeek API打造桌面工作台:Electron一键打包全流程解析 在AI应用开发中,将大模型API封装为桌面端工具是降低使用门槛的常见做法。这类工具本地不运行推理,而是通过HTTP请求调用云端模型服务,因此对硬件要求极低,普通办公机即可流畅运行。其核心价值在于将模型能力与日常任务编排结合,形成可复用的本地工作流,适用于代码辅助、批量文本处理、内容生成等场景。本文以DeepSeek API为基础,介绍桌面端harness的设计思路,从环境准备、API连通性验证、批量任务实现,到基于Electron的安装包制作与分发,完整展示如何将API能力打包成Windows和macOS一 阅读详情

相关推荐

microblaze之Video Processing Subsystem调试误区

内容:总结video processing subsystem调试中遇到的问题,以及在解决问题中的思路方法论,引为前车之鉴。 1,我的目的是希望采用vps中的scaler模块对图像进行拉伸缩小。IP的配置如下: 2,整个系统的框架图如下,仅比上期的内容增加了scaler模块,如下: 3,查手册,可以知道这个scaler only组件分成了hscale,vscale和GPIO,其中GPIO是控制上下游stream流控设备复位用,暂时忽略。 hscale和vscale的寄存器空间如下,主要关注图

YDY5659150的专栏 3555

Mac command+c或command+v失效解决办法之一

热键冲突的问题,若Mac开启了有道词典自动取词功能,退出取词功能即可! 也有可能是有道云笔记导致的。。。退出了就好了,或者是把command转移换成其他的不常用的键,移位试试,可以自定义把不常用的大写锁定键改成command键 ...

ios_xumin的专栏 5万+

微信小程序音视频通话(for硬件)授权与设备注册实战指南

本文详细介绍了微信小程序音视频通话(for硬件)组件的开发实践,涵盖授权流程、设备注册与VoIP插件集成。重点解析了如何通过服务端获取snTicket实现用户授权,确保硬件设备与微信端的音视频通话安全可靠,适用于智能门禁、话机等物联网场景。

u6v7w8x的博客 945

Idea无法使用Command+C复制文件,只能通过右键文件,点击copy复制

Idea无法使用Command+C复制文件,只能通过右键文件,点击copy复制 应该是插件导致command+c复制文件不可用,建议到plugins中进行禁用插件排查 笔者是因为EsayCode这个插件,禁用掉就可以正常复制了

liu262464的博客 3216

若依前后端分离版集成nacos

服务动态配置与服务注册发现根据公司要求,需要将项目集成到nacos中,当前项目是基于若依前后端分离版开发的,若依的版本为3.8.3,若依框架中整合的springBoot版本为2.5.14。Nacos核心提供两个功能:服务注册与发现,动态配置管理。

NDF923的专栏 4645

保姆级教程:在RV1126开发板上跑通YOLOv5口罩检测(从数据集到摄像头实时识别)

本文提供了一份详细的RV1126开发板部署YOLOv5口罩检测系统的全流程指南,涵盖数据集准备、模型训练优化、边缘部署及实时摄像头识别等关键步骤。重点解析了RV1126开发板的性能特征、YOLOv5模型训练调优技巧、RKNN模型转换量化策略,以及部署过程中的性能优化方案,帮助开发者高效实现边缘端目标检测应用。

weixin_27310985的博客 108

electron项目在mac上无法复制

electron项目在mac上无法复制,恢复快捷键。

Lsucre的博客 815

Vivado Schematic视图实战:从RTL分析到布局布线,如何用它快速定位设计问题(附2019.1版操作)

本文深入解析Vivado Schematic视图在FPGA设计中的关键作用,从RTL分析到布局布线全流程,帮助工程师快速定位设计问题。通过三重视图对比、高效调试四步法和高级技巧,提升问题排查效率,缩短调试时间。文章结合2019.1版操作指南和实战案例,展示如何利用Schematic视图解决典型设计问题。

weixin_30591551的博客 488

苹果Mac电脑的复制粘贴不能用了

复制 (⌘ + C) 和粘贴 (⌘ + V) 是使用Mac电脑过程中遇到频率非常高的快捷组合键,突然你发现它们不能使用了,会非常崩溃。macw小编今天为大家带来详细解决办法,让您的复制粘贴重新启用起来! 为什么 Mac 剪贴板不起作用 我们在 Mac 上复制的所有内容都存储在称为剪贴板的缓冲区空间中,可以包含任何类型的信息,从文本片段到文件再到图像等。 从技术上讲,剪贴板是一个软件,就像任何其他软件一样,是macOS的一部分。这就是为什么它容易受到错误和故障的影响。然而,与其他软件不同的是,剪贴板没有用

macwbear的博客 1万+

logisim实验——通过2个半加器实现1-bit全加器,通过4个一位全加器构成4-bit加法器(详解)

一、由异或门和与门所构成的半加器: 二、由两个半加器构成的1-bit全加器: ..

zep 1万+

单反相机物镜设计[DG-10]

REAR(要打在像面,操作数要找像面对应位置15):以透镜单位表示的真实光线径向坐标,波长由Wave定义,参见“Hx、Hy、Px和Py”。最小玻璃厚度最小不能小于semi-dia的1/10,要根据layout看有没有过厚过薄,反复调节。PROD:两个操作数的乘积(操作#1 X操作#2)。3x4就是57.3x0.41=23.5。拦光一般在第一面和最后一面操作,减少边缘无用光线。光阑面与镜面贴近,要调距离,同时设置光阑像差。后截距是指从镜头后表面到焦点的距离。CONS:弧度转为角度。镜头相互嵌入,有错误。

weixin_72050316的博客 600

electron mac 复制黏贴失败

mac上面无法复制黏贴,这个需要给他添加菜单,才可以解决。用的是"electron": "^23.2.0"在main/index.js下面添加如下内容。然后软件就多了一个下拉菜单。

小漠007的专栏 1535

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

如何使用Vue开发Electron桌面程序

一、Electron介绍 Electron 是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目. 使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序 1. 特点 跨平台 可以打包成Mac、Windows 和 Linux三个平台的应用程序 简化桌面端开发 (1)Electron 基于 Chromium 和 Node.js,可以使用 HTML, CSS 和 JavaScript 构建应用 (2)提供Electron api 和 NodeJS api

任磊 6445

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Electron 项目在 Mac 下复制和粘贴快捷键失效的解决办法

公司的一个项目需要开发跨平台,由于整个项目完全由我一个人开发,本人也是初次接触 Electron,开发过程中遇到了不少坑,同样的代码 Windows 下复制和粘贴没有问题,Mac 下复制和粘贴失效,在网上搜了一下都是菜单栏 相关的文章:https://www.jianshu.com/p/65eccd2b62f5 只好自己去 Electron Api 中找,随手一搜还真搜到了一个,不知道能否解决问题...

weixin_33853794的博客 1595

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Electron打包mac环境问题及解决方案

Electron打包mac版本的系列问题修复 主要针对Electron打包mac环境时,报的各种问题,依赖包加载失败等。 建议采用的打包方式: npm install electron-builder -g npm run pack (压缩静态资源) electron-builder -m (打包命令) electron-v1.8.2-win32-x64.zip下载失败 解决方案...

qq_41662119的博客 3567

Electron在mac下快捷键失效的问题及解决

场景:在消息发送的输入框中,使用快捷键的复制粘贴,全选,等等都会失效。 解决方案如下: 将如下代码放到main/index.js主进程中 if (process.platform === 'darwin') { let contents = mainWindow.webContents globalShortcut.register('CommandOrContro...

qq_41662119的博客 1132

2024年最全如何使用Vue开发Electron桌面程序,web开发需要学什么

总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】②中配置生成命令③ 生成图标④ 使用})2. 在Mac系统下的几个问题在mac系统下修改electron默认图标在根目录下放置一张名为icon的图片,即icon.png即可。

2401_84433807的博客 1600

Mac 应用开发者的困境:使用 Electron 还是原生技术?

这篇文章讨论了 Electron 等跨平台开发框架在 Mac 应用程序中的广泛使用及其问题。作者强调,这些框架虽然简化了跨平台开发,但导致应用程序体积膨胀、性能下降。文章以 BBEdit 和 WhatsApp 为例,展示了原生应用与基于 Electron 的应用在大小、性能等方面的差异。原文链接:https://hyperdiskapp.com/blog/too-many-mac-apps-are...

优快云资讯 1万+

如何使用Vue开发Electron桌面程序,内容太过真实

1. 配置项目图标使用, 生成符合Electron的图标① 安装②中配置生成命令③ 生成图标④ 使用})2. 在Mac系统下的几个问题在mac系统下修改electron默认图标在根目录下放置一张名为icon的图片,即icon.png即可。在Mac系统下,复制粘贴无效的问题:可以在创建窗口的时候自定义快捷键:具体代码:preload:},icon:// icon:});/* if (!*/} else {

2401_84024576的博客 1441

开发 Electron app 必知的 4 个 tips

本文讲的是开发 Electron app 必知的 4 个 tips, Electron,是包括 Avocode 在内的众多 app 采用的技术,能让你快速实现并运行一个跨平台桌面应用。有些问题不注意的话,你的 app 很快就会掉到“坑”里。无法从其它 app 中脱颖而出。 这是我 2016 年 5月 在 Amsterdam 的 Electron M...

weixin_33681778的博客 2107

2024年前端最全如何使用Vue开发Electron桌面程序,2024年最新字节跳动面试没过会发邮件吗

大前端和全栈是以后前端的一个趋势,懂后端的前端,懂各端的前端更加具有竞争力,以后可以往这个方向靠拢。这边整理了一个对标“阿里 50W”年薪企业高级前端工程师成长路线,由于图片太大仅展示一小部分②中配置生成命令③ 生成图标④ 使用})在mac系统下修改electron默认图标在根目录下放置一张名为icon的图片,即icon.png即可。在Mac系统下,复制粘贴无效的问题:可以在创建窗口的时候自定义快捷键:具体代码:preload:},icon:// icon:});/* if (

2401_84616838的博客 875

Electron应用菜单开发实战:从模板构建到跨平台状态管理

在桌面应用开发中,菜单系统是连接用户与操作系统的重要交互层,它遵循平台设计规范,提供键盘快捷键支持,直接影响用户体验的专业性。其实现原理基于模板化配置,通过角色(Role)机制自动适配不同操作系统的标准行为,并利用加速器(Accelerator)绑定高效操作。这一设计的技术价值在于实现了应用与系统的深度集成,确保了交互的一致性与效率。典型的应用场景包括文本编辑器、IDE及各类生产力工具,其中动态菜单状态管理尤为关键。本文聚焦于Electron框架下的菜单开发,深入解析如何构建符合平台习惯的菜单,并有效管理跨

weixin_34342905的博客 390

基于Electron构建高性能ChatGPT Mac客户端的架构设计与避坑指南

作为一名长期使用ChatGPT的开发者,我发现自己越来越依赖它来辅助代码编写、调试和方案设计。然而,日常使用中,几个痛点逐渐浮现,让我萌生了构建一个专属Mac客户端的想法。这些痛点促使我去寻找一个平衡方案:既能拥有接近原生的应用体验和系统调用能力,又能利用现代Web技术的开发效率,同时还能对API调用进行有效的封装和管理。这就是我选择基于Electron来构建这个客户端的初衷。

2600_94959885的博客 449

零代码搭建本地AI桌面应用:Electron+Ollama实战指南

AI桌面应用本质是本地化、可视化、可控制的智能工具,其核心在于将大模型推理能力封装为离线可用的服务,并通过图形界面实现人机交互。原理上依赖前端框架(如Electron)与轻量AI引擎(如Ollama)的松耦合通信,技术价值体现在免联网、低门槛、跨平台和数据自主——无需GPU编程经验,也能在Windows/macOS上双击运行。典型应用场景包括会议纪要生成、作文批改、邮件润色等办公自动化任务,尤其适合行政、教育、设计等非技术岗位。本文聚焦‘build by yourself’落地路径,以Electron+Ol

weixin_30786657的博客 553
上一篇: 手写Handler
下一篇: 手机端使用N2N虚拟局域网的方法(安卓)
MorrisMao
博客等级 码龄18年 39粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值