繁体   English   中英

通过invokeScriptAsync对对象的调用方法

[英]Call method on object via invokeScriptAsync

我正在研究WinJS项目,并尝试使用invokeScriptAsync在x-ms-webview上调用方法。 它不起作用,我得到的错误没有帮助。 我只有一个“未知错误”。 我以前从未遇到过任何问题,这次的唯一区别是我要调用的方法是任何对象的一部分,而不是全局javascript方法。 我的电话看起来像这样:

webview.invokeScriptAsync("object.subobject1.subobject2.method", "arg1", "arg2", "arg3").start();

我唯一能想到的是该函数必须是全局函数,但是我还没有找到任何文档来支持该函数。 有任何想法吗?

我能够使对象上的调用方法工作的唯一方法是将eval传递给invokeScriptAsync方法:

webview.invokeScriptAsync("eval", "object.subobject1.subobject2.method('arg1', 'arg2', 'arg3');").start();

invokeScriptAsync的第一个参数是一个字符串,该字符串可在webview中解析。 您正在做的是尝试解析应用程序JavaScript内容中的object.subobject1.subobject2.method变量,该变量可能是“未定义的”。 因此,要求Webview执行未定义会给您带来一个模糊的错误。

将要调用的函数名称包装在引号中,然后将在Webview的脚本上下文中对其进行解析:

webview.invokeScriptAsync("object.subobject1.subobject2.method", "arg1", "arg2", "arg3").start();

简而言之,请像评估一下一样考虑invokeScriptAsync。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM