我相信可以从(PhoneGap)Javascript调用Java方法.
谁知道怎么做?(我知道如何通过更改PhoneGap的源代码来实现,但我会避免这种情况)
我有一个添加了javascript界面的webview,在大多数设备上都能正常运行,除了那些运行Android 4.2.1的设备.
我删除了大部分代码,并保留了一个非常基本的代码:
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.setWebChromeClient(new WebChromeClient());
this.webView.addJavascriptInterface(new Object() {
public void handshake() {
Log.d("JS", "handshake no params");
}
public void handshake(String json) {
Log.d("JS", "handshake with params: " + json);
}
}, "Android");
Run Code Online (Sandbox Code Playgroud)
在javascript方面,测试代码如下所示:
Android.handshake();
Run Code Online (Sandbox Code Playgroud)
但是我在logcat中得到了这个:
E/Web控制台:未捕获TypeError:对象[对象对象]没有方法'握手'
同样,在我测试过的较旧的android os(<4.2.1)(最小版本为2.3.3)的设备中,这同样适用.
奇怪的是,如果我开始一个全新的项目,除了一个只有一个WebView的Activity,使用相同的代码,一切都可以正常工作,即使对于4.2.1,但当它是我的实际项目的一部分,事情中断.我正在使用的webview没有做任何事情,我提供的代码片段中没有包含这些内容.
对我来说最奇怪的是,javascript找到了Android对象,但它只是没有请求的方法(握手),怎么会这样呢?
任何帮助将不胜感激,因为这在过去的两周左右让我疯狂(这是一个我一直回去的错误,然后放弃等等).谢谢.
在iOS应用中,我使用过
stringFromJavaScript = [webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"image\").getAttribute(\"src")"];
Run Code Online (Sandbox Code Playgroud)
获取webView上显示的图像的src目录.我想为Android做同样的事情.我有什么选择?
基本上意图是捕获路径,以便我可以通过电子邮件发送同一张图片......
即.
"picture.php?image=%@",stringFromJavascript
Run Code Online (Sandbox Code Playgroud)
这样,当用户点击链接时,将加载相同的图像,或将其发布到Facebook等.