如何在Android中将Javascript返回值转换为字符串
我在安卓系统工作,我是这个开发的新手 我学习并开始使用EclipseIDE开发我的应用程序 我正在显示一个带有URL的webView,然后我尝试调用一个JS函数。此函数返回一个字符串值 我可以在alert中显示它,但我希望将其作为字符串值。我们怎样才能做到这一点 在转换为字符串的行上出现类型不匹配错误 我的JS功能: 我的MainActivity.Java如何在Android中将Javascript返回值转换为字符串,javascript,java,android,Javascript,Java,Android,我在安卓系统工作,我是这个开发的新手 我学习并开始使用EclipseIDE开发我的应用程序 我正在显示一个带有URL的webView,然后我尝试调用一个JS函数。此函数返回一个字符串值 我可以在alert中显示它,但我希望将其作为字符串值。我们怎样才能做到这一点 在转换为字符串的行上出现类型不匹配错误 我的JS功能: 我的MainActivity.Java 基本上,您可以使用javascript桥在webview javascript环境和javaandroid之间交换字符串值。请看这个例子
基本上,您可以使用javascript桥在webview javascript环境和javaandroid之间交换字符串值。请看这个例子 如果您不能使用上面的javascript桥 试穿 javascript->
function fing() {
return "welcome today"
}
Webview加载脚本
javascript:alert(fing().stringyfy())“
基本上,您可以使用javascript桥在Webview javascript环境和java android之间交换字符串值。请查看示例
如果您不能使用上面的javascript桥
试穿
javascript->
function fing() {
return "welcome today"
}
Webview加载脚本
javascript:alert(fing().stringyfy())“
您不应该以上面尝试过的方式执行此操作
要进行从该函数返回值的JS调用,请将generate.setOnClickListener代码更改为如下所示:
generate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.loadUrl("javascript:alert(fing())");
}
});
然后您还应该更改以下部分,以获得要分配给字符串的返回值
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message,JsResult result) {
Log.d("LogTag from js call method", message);
str = message;
result.confirm();
return true;
}
});
这应该已经在您的Logcat控制台中,因为您的代码已经有了它
如果不是,则需要再次检查webChromeClient是否在活动中的某个位置为同一webView对象再次启动
注:
您必须在活动中创建str(String)变量,该变量在onJSAlert方法中分配
希望这有帮助 你不应该以上面尝试过的方式来做这件事 要进行从该函数返回值的JS调用,请将generate.setOnClickListener代码更改为如下所示:
generate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.loadUrl("javascript:alert(fing())");
}
});
然后您还应该更改以下部分,以获得要分配给字符串的返回值
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message,JsResult result) {
Log.d("LogTag from js call method", message);
str = message;
result.confirm();
return true;
}
});
这应该已经在您的Logcat控制台中,因为您的代码已经有了它
如果不是,则需要再次检查webChromeClient是否在活动中的某个位置为同一webView对象再次启动
注:
您必须在活动中创建str(String)变量,该变量在onJSAlert方法中分配
希望这有帮助