博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
客户端C++与前端js交互
阅读量:6404 次
发布时间:2019-06-23

本文共 1067 字,大约阅读时间需要 3 分钟。

客户端与前端交互

  1. qwebchannel.js文件引入
  2. 建立通信
//  c++发送消息给jsnew QWebChannel(qt.webChannelTransport, function(channel){    var content = channel.objects.jsContext;    //  建立通信后,客户端通过调用 sMsg 方法来执行后面的回调函数,从而实现c++与js交互    content.sMsg.connect(function (str) { //  str为客户端发送来的数据,交互数据一定是字符串格式      if(!str) return;      var question = typeof str === 'string' ? JSON.parse(str) : JSON.parse(JSON.stringify(str));      rMsg(question);    });    content.cBg.connect(function(data){//C++ 通过jsBridge更改背景色      cBg(data);    });    window.cjs = cjs })复制代码
//js调用c++的方法发送消息   window.cjs是初始化new QWebChannel之后绑定在window对象上的cjs。名字前后保持一致var loadComplate2C = {    "type" : "loadComplate",    "data" : "loadComplate"};loadComplate2C = JSON.stringify(loadComplate2C);window.cjs && window.cjs.jsToQt(loadComplate2C);复制代码

遇到的问题

  1. 时间点问题:new QWebChannel 的时间点一定尽早。在引入qwebchannel.js文件之后,在当前html文件里面。时间点如果不对,很有可能收不到客户端发送来的数据,因为客户端会在页面加载完成后直接发送,而此时如果new QWebChannel在外链js文件中,有可能没来得及执行。
  2. 参数传递问题:传递的参数都是string格式!
  3. 客户端本地上传文件拿到绝对路径,前端不能直接展示,因为chrome的安全策略,不允许前端读取本地路径的资源文件。

待完成

查看通信原理qwebchannel.js源代码,了解js和c++能够建立通信的原因

转载地址:http://fxnea.baihongyu.com/

你可能感兴趣的文章
网络层--IP协议(04)
查看>>
asp.net membership 修改密码
查看>>
JQuery高性能最佳实践
查看>>
Maven中Tomcat的日志格式调整
查看>>
OpenCV的基本绘图函数
查看>>
MDT2010学习(四),导入驱动程序
查看>>
ab测试,带参数用例
查看>>
php中函数的实参和形参
查看>>
关于Oracle EBS 用户电脑IE浏览器相关配置
查看>>
servlet转发到struts2问题,找不到路径
查看>>
yum 安装报 关于Public key for *.rpm is not installed 的解决方法
查看>>
perl检测无效符号链接
查看>>
两个安卓手机的链接socket(套接字)编程
查看>>
Java面试题:Integer i = 127;Integer j = 127;比较
查看>>
安装pywin32
查看>>
如何进行文章分类和标签的数据库设计
查看>>
黑科技:程序猿如何打造属于自己的分体键盘
查看>>
“Zabbix poller processes more than 75% busy”警报问题解决
查看>>
PhpStorm创建Drupal模块项目开发教程
查看>>
swap分区的作用,如何决定swap分区的大小
查看>>