gpt4 book ai didi

javascript - 我如何调用javascript函数并从javascript函数获取返回值

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:02 25 4
gpt4 key购买 nike

我想从我的 Java Android 上的 JS 函数中获取值

示例,

function getStringToMyAndroid(stringFromAndroid){
var myJsString = "Hello World" + ;
return myJsString;
}

现在我想调用函数 getStringToMyAndroid("This string from android") 并在我的 Android 上获取返回的 myJsString,这样我就可以使用 myJsString 稍后在我的 Android 上;

我知道我可以用

WebView.loadUrl("javascript:getStringToMyAndroid('This string from android')")

要调用JS函数但我想从JS函数中获取字符串或值

注意:我的 android 运行在最低 SDK Android 3.0 honeycomb 上

最佳答案

对于 API 级别 < 19,只有使用 JavascriptInterface(下面是我的首选方法)或劫持 OnJsAlert 方法并改用 alert() 对话框的解决方法。这意味着您不能将 alert() 函数用于其预期目的。

查看:

WebView.addJavascriptInterface(new JsInterface(), "AndroidApp");
WebView.loadUrl("javascript:doStringToMyAndroid('This string from android')")

JsInterface:

public class JsInterface() {
@JavascriptInterface
void receiveString(String value) {
// String received from WebView
Log.d("MyApp", value);
}
}

Javascript:

function doStringToMyAndroid(stringFromAndroid){
var myJsString = "Hello World" + ;
// Call the JavascriptInterface instead of returning the value
window.AndroidApp.receiveString(myJsString);
}

但是在 API 级别 19+ 上,我们现在有了 evaluateJavascript 方法:

WebView.evaluateJavascript("(function() { return getStringToMyAndroid('" + myJsString + "'); })();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
Log.d("LogName", s); // Returns the value from the function
}
});

关于javascript - 我如何调用javascript函数并从javascript函数获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com