如何在Android中将Javascript返回值转换为字符串

如何在Android中将Javascript返回值转换为字符串,javascript,java,android,Javascript,Java,Android,我在安卓系统工作,我是这个开发的新手 我学习并开始使用EclipseIDE开发我的应用程序 我正在显示一个带有URL的webView,然后我尝试调用一个JS函数。此函数返回一个字符串值 我可以在alert中显示它,但我希望将其作为字符串值。我们怎样才能做到这一点 在转换为字符串的行上出现类型不匹配错误 我的JS功能: 我的MainActivity.Java 基本上,您可以使用javascript桥在webview javascript环境和javaandroid之间交换字符串值。请看这个例子

我在安卓系统工作,我是这个开发的新手

我学习并开始使用EclipseIDE开发我的应用程序

我正在显示一个带有URL的webView,然后我尝试调用一个JS函数。此函数返回一个字符串值

我可以在alert中显示它,但我希望将其作为字符串值。我们怎样才能做到这一点

在转换为字符串的行上出现类型不匹配错误

我的JS功能: 我的MainActivity.Java
基本上,您可以使用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方法中分配

希望这有帮助