子程序Webview如何访问父程序变量

使用问题 · 1139 次浏览
FaniX 创建于 2022-07-25 09:38

我正在用Webview开发UI,准备打包为子程序

想问一下如果我想在Webview中访问父程序变量,比较推荐的做法是什么?


回复内容
CL 2022-07-25 11:54
#1

目前webview内似乎没法访问主程序里的变量。只能传递到子程序,如果要修改,再输出到主程序了。

FaniX 回复 CL 2022-07-25 12:04 :

我想用$quickerSync.getVar()来动态获得Quicker变量的值,但并不能确定主程序里的变量名。

我在想能不能把_context传进子程序来实现这一点(?)

有没有方法从_context中提取当前上下文中所有变量的值(最好还能有变量类型信息)呢?如果可以的话我可以选择传一个包含所有变量名和值的字典进webview

FaniX 最后更新于 2022-07-25 12:05
CL 回复 FaniX 2022-07-25 12:09 :

js里没有办法使用c#的类型,所以目前要使用bridge对象封装变量的访问。目前的版本没有开放_context,等开一下试试看了。

FaniX 回复 CL 2022-07-25 18:27 :

有什么办法可以列出当前_context下的所有变量名吗?

南风 回复 FaniX 2022-07-25 18:34 :

表达式编辑窗口里在后面_context后面打个点.后面就能显示能用的方法列表,可以找一下有没有你需要的

CL 回复 FaniX 2022-07-25 18:37 :

应该是没有方法的。这些数据本身保存在一个词典中,如果需要动态保存这样的数据,最好弄一个词典类型的变量。

FaniX 回复 南风 2022-07-25 20:27 :

感谢建议,我现在通过向子程序传入_context和并在子程序内通过_context.GetVariables()转JSON实现了子程序webview读取主程序变量。

CL 回复 FaniX 2022-07-25 20:35 :

好的,忘了还有这个方法😂

FaniX 2022-07-25 20:36
#2

测试了一下,可以通过传递向子程序传递_context为动态对象的方式在子程序访问主程序变量

虽然从安全性和完整性的角度考虑的话这么做并不妥当,但是如果只是读取变量的话应该不会出什么问题

相关动作:多字段表单(Webview2)示例


回复主贴