uniapp的使用evalJS无法传入动态字符串的问题,例如token(踩坑)

        首先我就是普通的vue页面,并且只在app应用,不在h5,先是获取webview实例:

var token = getApp().globalData.configInfo.token;
var currentWebview = this.$scope.$getAppWebview();
setTimeout(function() {
	var wv = currentWebview.children()[0]
}, 1000);

我是 IOS IOS IOS 设备,android 我没测试,wv需要在延时里获取,不然会报错,延时自行测试;

然后直接在延时中调用

wv.evalJS("test()")

如果要传入在括号中写入就好了,但是动态传参有个很坑的地方:

var token = getApp().globalData.token
// var token = '123123123'
// var token = 123123123
wv.evalJS('test('+token+')') // 传不过去

wv.evalJS(`test(${token})`) // 传不过去

这两者都传不过去,但是纯数字或者纯数字的字符串都可以传过去;

然后我就发现是单引号的问题,这是我没想到的,找了大半天资料后,发现是这个问题;

然后我立马改了我的写法

// wv.evalJS("test('"+token+"')")

wv.evalJS(`test('${token}')`)

这样就ok了,希望更多遇到这个坑的人看到我这文章,因为我发现好多人都是复制粘贴,也没多少人注意到这个引号问题,我会尽量让我这个更好搜索。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值