在Android WebView中从Java对象接收到的值的类型是什么?
问题描述:
我有一个类,说A,Java中有很少的方法和一些静态变量。在Android WebView中从Java对象接收到的值的类型是什么?
我正在Android中构建一个基于WebView的应用程序。我已经使用addJavascriptInterface方法注入了类A的实例。 (该应用实际上使用Phonegap)
我有一个Javascript函数,它使用传递给它的公钥K(n,e)执行RSA加密。
encryptString(n, e);
'N' 个由从类A的方法返回的,称为等:
var keyn = window.A.load("publicKey");
这是我有一个问题。当我将'n'作为字符串传递,'e'=“10001”作为字符串传递时,加密效果很好。但是,当我传递keyn从方法中收回时,它不起作用。
encryptString("42342abcdefg2232", "10001"); // Works
encryptString(keyn, "10001"); // Doesn't work :(
我已经在logcat中记录了关键字,并且它显示该值在变量keyn中正确接收。
然后是什么问题? PS:我已经尝试了两种不同的RSA加密库,并且都遇到了同样的问题。所以,很可能这不是我使用的加密代码中的问题。
答
我找到的解决方案是我通过keyn
作为new String(keyn)
它的工作。在旅程中,我发现了Javascript中字符串字面量和字符串对象之间的差异。我想WebView
基本上返回一个Object
,我们需要将它转换为字符串对象,然后将它传递给该函数。
任何人都可以详细阐述它是值得欢迎的。