在Android中执行javascript而不使用webview
Execute javascript without webview in Android
我正试图在我的Android应用程序中执行JS函数。该函数位于网站上的.js文件中。
我不使用webview,我想执行JS函数,因为它发送了我想要的请求。
在浏览器的控制台中,我只需要执行question.vote(0);
,如何在应用程序中执行?
更新2018:AndroidJSCore已被基于V8的LiquidCore取代。它不仅包括V8引擎,而且所有Node.js都可用。
您可以在没有WebView的情况下执行JavaScript。您可以使用AndroidJSCore。下面是一个如何做到这一点的快速示例:
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://your_website_here/file.js");
HttpResponse response = client.execute(request);
String js = EntityUtils.toString(response.getEntity());
JSContext context = new JSContext();
context.evaluateScript(js);
context.evaluateScript("question.vote(0);");
然而,这很可能在WebView之外不起作用,因为我认为您不仅依赖JavaScript,还依赖AJAX,AJAX不是纯JavaScript的一部分。它需要浏览器实现。
你为什么不使用隐藏的WebView并简单地注入你的代码?
// Create a WebView and load a page that includes your JS file
webView.evaluateJavascript("question.vote(0);", null);
为了将来的参考,有一个用于此目的的库。https://github.com/square/duktape-android
这个库是Duktape的包装器,可嵌入JavaScript引擎
您可以运行javascript而不必摆弄WebView。
Duktape是符合Ecmascript E5/E5.1的,所以基本的东西可以用它来完成。
相关文章:
- JavaFX+WebView/Javascript:setTimeOut不起作用调用堆栈来自Java
- 检查登录错误Android WebView Javascript
- 了解 Android webview JavaScript 界面
- 从片段 WebView JavaScript 更新活动图像视图
- 如何检查WebView Javascript接口是否可用
- Webview javascript not executing
- Android WebView - Javascript 不会触发回调函数
- UIWebView vs WebView Javascript Injection
- 来自资产的Android WebView JavaScript
- webview javascript事件通知
- Android Webview Javascript点击事件没有像它应该的那样启动
- Android应用程序关闭时不会出现任何错误WebView Javascript
- 找不到Webview javascript接口函数
- android webview javascript不与loadDataWithBaseUrl工作
- Android WebView: javascript执行后如何加载页面
- Android Webview - javascript屏幕尺寸vs实际屏幕尺寸
- Android webview javascript有时无法加载
- Android WebView javascript接口属性
- Android开发:WebView JavaScript不工作
- 将大数据从Android Activity传输到WebView Javascript