动作结束后词典状态无法保存的问题

使用问题 · 53 次浏览
IDongYou 创建于 10天20小时前

使用"打开网页"打开WebView2窗口, 动作结束后, 在WebView2窗口中执行代码操作变量, 这个变量是勾选了"保存变量的值"的

这个变量的方式可以正常保存状态

async function func(){
  // 注入的对象
  let v = await $quicker;
  // 读取变量
  let varValue = await v.getVar("变量名");
  // 写入变量
  await v.setVar("变量名", newValue);
}

但是词典方式是无法保存状态的

//setDictItemValue(词典变量名,键名,值)
$quickerSync.setDictItemValue("dict", "c", 3);

这个有办法解决吗


回复内容
CL 10天12小时前
#1

WebView2有没有等待关闭?需要确保窗口关闭之前,动作没有结束。

IDongYou 回复 CL 10天11小时前 :

没有等待关闭; 窗口没有关闭, 动作结束后, 词典的方式能否也可以保存状态呢? 因为我测试了下变量的方式是可以的

CL 回复 IDongYou 10天11小时前 :

更新整个变量的时候会调用状态操作,但是更新词典单个键值的时候不会。如果没有等待关闭,动作会提前结束,就会导致词典变量状态不会写入了。

li1qqq 回复 CL 7天11小时前 :

如果我是用状态存取,且在子程序中启动的webview2窗口,那我该如何往quicker的变量写数据

(我用了一个死循环一直判断窗口是否存在,直到窗口不存在再退出)

CL 回复 li1qqq 7天3小时前 :

目前应该是无法实现这样的需求的。 除非主程序中执行子程序,子程序中显示webview2并等待关闭,在里面读写子程序的变量,然后子程序再把变量输出到主程序里状态存取的变量。 

回复主贴