- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
是否可以将js中的任意函数对象传递给java端,让java调用那个js对象? (回调)
例如,(access是已经注册调用Java函数的函数)
access(function(blabla){
...
});
java中有没有什么可以处理匿名回调函数的高招?
最佳答案
您只需要某种键来引用您的个人回调匿名函数。我认为这也是有时使用 jsonp 的方式。
Javascript:
var callbacks = [];
function registerCallback(callback)
{
callbacks.push(callback);
return callbacks.length - 1;
}
function getCallback(index)
{
var callback = callbacks[index];
callbacks[index] = null;
TryGCCallbacks();
return callbacks;
}
//The array index positions must be preserved, but when it's empty, we should restart the array so it doesn't grow forever
function TryGCCallbacks()
{
var isCallbackRemaining = false;
for (var i = 0; i < callbacks.length; i++)
{
if (callbacks[i] == null) {
continue;
}
isCallbackRemaining = true;
break;
}
if (isCallbackRemaining == false)
{
callbacks = []; //reset
}
}
Java:
@org.xwalk.core.JavascriptInterface
public String TestCallback(String someData, String onSuccess, String onError){
xwalk.evaluateJavascript("getCallback(" + onSuccess + ")('success');", null);
}
从 Javascript 使用它:
var onSuccess = registerCallback(function(r) {
console.log(r);
});
TestCallback('lalala', onSuccess, null);
关于javascript - 将js回调函数作为参数传递给Java addJavascriptInterface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8632576/
是否可以将js中的任意函数对象传递给java端,让java调用那个js对象? (回调) 例如,(access是已经注册调用Java函数的函数) access(function(blabla){
我知道要从 Javascript 与 Java 交互,您必须使用 webview 中的 addjavascriptInterface 方法注入(inject) Java 对象。 这是我面临的问题。 我
我正在尝试向当前加载的 html 添加一些新内容(在 webview 中),这不是问题所在,我可以通过 javascript 向主体添加新标签,假设这样: loadUrl("javascript:(f
我在我的应用程序中使用 addJavascriptInterface 从 Javascript 弹出一个共享窗口。 问题是:当我在开发环境中使用我的手机时,我可以看到弹出窗口。但同样在发布到谷歌和下载
我需要从 Web 响应中调用我的 java 函数: 这是我的代码,请指出我哪里出错了 Activity : @InjectView(R.id.loadCardWebView) android.
AndroidStudio 开始向我显示警告“不应调用 WebView.addJavascriptInterface”。但是这种方法存在并且没有被弃用。它出什么问题了?可能是我遗漏了什么,现在有更好的
我试图跟踪代码以查看 WebView 上的 addJavascriptInterface() 是如何实现的,但它深入到 native 代码中,这基本上削弱了我理解正在发生的事情的能力。 具体来说,我正
当在 html 页面中单击表格行时,我试图从我的 Web View 中获得回调。我的 Activity 如下: public class LocalizationTestActivity exten
我使用以下代码在 Android 中的 JavaScript 文件中提取字符串变量: 这是我的 JavaScript 文件: //EDIT: clsVariable = "vikrant"; fun
我想使用 phonegap cordova 在 android 中构建 native 应用程序。我找到了 2 种方法让我的 html 文件可以与我的 java 文件通信。我可以使用 appView.a
我们已经构建了 PhoneGap 插件来从我们的 Javascript 代码返回到我们的 Java 代码。我知道 Android 也有一个 addJavascriptInterface 函数。此处的文
我正在尝试将 javascript 接口(interface)添加到我找到的 WebView。我遵循了所有标准教程,但仍然在为这项任务而苦苦挣扎。添加 javascript 接口(interface)
addJavascriptInterface让我们将 java 对象注入(inject)到 Android web View 的 javascript 中。关于每个 javascript 类型可以在该
我正在使用 jQuery Mobile 和 PhoneGap 开发 Android 应用程序。这是我的 Activity : public class xxx extends DroidGap {
谷歌的 security guidelines对于 Android 应用程序开发人员具有以下内容: WebViews do not use addJavaScriptInterface() with
您可能知道,Android 的 WebView 有一个名为 addJavascriptInterface() 的方法,它可以将 Android JAVA 对象导入 Javascript 上下文。 问题
我可以从我的 phonegap java 脚本函数和 android 2.2 中使用 java 函数但相同的代码未在 API 17 上运行。我应该怎么做才能从 API 17 中的 java 脚本调用
我正在使用 MonoDroid,并希望可以从我的 WebView 调用 C# 代码。 我正在这样做(C#): protected override void OnCreate(Bundle bundl
我可以通过 WebView.addJavascriptInterface 接口(interface)接收一个 Object 吗?像这样的东西: public class JavaScriptInter
单击 HTML 按钮时,我无法在 Cordova webview 中打开链接。它显示“CordovaWebView 类型未定义方法 addJavascriptInterface(WebViewActi
我是一名优秀的程序员,十分优秀!