如何使用Android webview运行依赖于另一个库/模块的javascript
How to use Android webview to run javascript that depends on another library/module
我们可以运行简单的javascript函数(jsCode),如:
function() {
return "test"
}
在webview: String js = "(" + jsCode + ") ();"
mWebView.evaluateJavascript(js, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
Log.d("return value: ", s); // Returns the value from the function
}
});
但是如果我的javascript依赖于另一个模块或引用另一个文件,如:
import { double } from 'mymodule';
这能实现吗?
我通过在评估jsCode
之前评估外部javascript文件来实现这一点private String[] jsFiles = {"external_lib.js", "main.js"};
private void evaluateJS() {
try {
String js = readFromAssets(jsFiles[fileIndex]);
Log.e(TAG, "evaluating: " + jsFiles[fileIndex]);
mWebView.evaluateJavascript(js, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
fileIndex++;
if (fileIndex == jsFiles.length) {
// we have evaluated the last javascript file
Log.e("return value: ", s); // Returns the value from the function
return;
}
evaluateJS();
}
});
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
main.js中的代码使用external_lib.js中定义的变量和函数
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- JavaScript命名约定;静态“;类或模块
- Javascript模块系统I'I’我正在努力,但搞不明白
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- Javascript中的模块模式和揭示模块模式是否仅在创建API时有用;s
- 将事件发送到javascript文档的react本机模块是否正确
- 记录javascript模块名称
- 是否可以从javascript文件中将量角器作为模块运行
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 如何在客户端javascript中需要节点模块
- 在我的JavaScript模块中绑定一个点击事件
- 为什么在javascript中的模块模式中实现Lazy函数时范围会发生变化
- 在模块 JavaScript 中创建对象
- Drupal 7 Gmap模块- javascript错误"需要javascript来查看这个地图."
- 如何将我的模块Javascript添加到prestshop中的*所有*页面
- DotNetNuke模块javascript干扰编辑按钮
- 为多模块Javascript网站应用Backbone.js
- 模块Javascript中的常量或最终变量
- asp.net MVC - 敲除 CSS 绑定和揭示模块 JavaScript Patten