vue如何与C++交互升级版本
function build() {let wenzhen = window.external.接口函数();let listtijian = JSON.parse(wenzhen);return listtijian;}window.external.myfunc()来调用浏览器提供的外部方法myfunc。可以让网页内的js脚本中能调用C++代码。用vue写在vue的外...
·
function build() {
let wenzhen = window.external.接口函数();
let listtijian = JSON.parse(wenzhen);
return listtijian;
}
window.external.myfunc()来调用浏览器提供的外部方法myfunc。可以让网页内的js脚本中能调用C++代码。
用vue写在vue的外面。调用的直接调用 build();
如果需要从外面拿里面data的参数 就是 vm.值。
————————————————————————————————————————————
更新个写法!上面那个开发效率也很不友好,而且传参数的时候 也不方便。比如当想调用数据,又想有一个动态加载的转圈Loging。C++调用的只是一个函数 又不能说在http.js里去配置公共的axios的请求加载的设置。所以需要自己封装一个。
在一个js里封装一个调用方法!
/**
* 自定义ajax
* @param {*} url 接口地址
* @param {*} datas
有参数{
Id: id,
Code:Code
}
无参数null
* @param {*} fn
* @param {*} error
*/
myAjax(url,datas, fn, error) {
// this.show() //这是在一个加载动态Loging的js里配置的。只需要在这定义一下请求的时候显示转圈
let data = datas ? '\'' + JSON.stringify(datas) + '\'' : '';
let wenzhen = eval(`(window.external.${url}(${data}))`);
let listtijian = JSON.parse(wenzhen);
setTimeout(() => {
if(listtijian.code=="200"){
fn(listtijian)
// this.hide();//这是在一个加载动态Loging的js里配置的。只需要在这定义一下请求完以后转圈消失
}else{
error(listtijian.msg)
}
}, 300)
}
// main,js里配置
import loading from './components/loading/loading.js' // 引入loading
Vue.use(loading) // 全局使用loading
// 没参数调用的方法
this.$loading.myAjax('接口', //获取已执行体格检查项
null,
data => {
this.list = data.data
},
error => {
alert(error)
}
)
// 有参数调用的方法
this.$loading.myAjax('接口',
{
Id: this.Id,
Code: this.Code,
},
data => {
this.list = data.data
},
error => {
alert(error)
}
)
至于加载的动画Loging~ 需要就用不需要就不用!百度一下,有很多!
更多推荐
已为社区贡献3条内容
所有评论(0)