javascript - 如何在没有 JS 接口的情况下立即将值从 JS 函数返回到 Java?
问题描述
我有一个网络视图。我想从 Java 调用 JS 函数并将返回值分配给一个变量。
来自 java 的这一行调用 JavaScript 的 getUserDetails() 函数。
webview.loadUrl("javascript:window.getUserDetails()");
这是 javascript 中的 getUserDetails 函数,它返回一个字符串
window.getUserDetails = function(){
return "username";
}
我想实现这样的目标。
String user = webview.loadUrl("javascript:window.getUserDetails()");
我怎样才能做到这一点?
解决方案
您必须更改调用该方法的方式。
webview.loadUrl("javascript:alert(window.getUserDetails())");
在处理警报时,您的返回值将在那里。欲了解更多信息,请点击此链接
根据评论,您可以通过以下方式执行此操作。
String mUserName;
String getUserName(){
runOnUiThread(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:android.onData(window.getUserDetails())");
}
});
return mUserName;
}
@JavascriptInterface
public void onData(String value) {
mUserName = value;
}
推荐阅读
- azure - Azure 解压缩自动化
- javascript - 在没有上下文的情况下访问 WebGL 常量/枚举
- amazon-web-services - CodePipeline Beanstalk 部署版本
- android - 不幸的是,OnClickListner 已停止
- javascript - 如何使用 Javascript 创建实时媒体流
- javascript - 大字典引起的 Javascript 错误
- python - Python猜测游戏拒绝无效的用户输入
- javascript - 如何将 vscode css 颜色选择器功能带入带有匹配颜色名称格式的字符串的 js 文件中?
- c# - 如何通过查询连接 2 个 SQL Server 表并动态使用数据
- r - R中按组替换缺失值