Android平台中JavaScript的执行主要通过两种方式实现:
WebView
组件加载网页时,默认使用系统内置的JavaScript引擎(不同Android版本引擎不同)。React Native
、Hermes
等第三方引擎直接执行JavaScript代码。JavaScriptCore
(JSC)引擎,版本较旧(类似Safari 5.1的ES5支持)。let/const
、Promise
、箭头函数
):async/await
在Android 7+才完全兼容。Babel
转译可降级兼容旧设备。可选链?.
、空值合并??
):<script type="module">
区分现代/传统代码。Termux
):WebView
中ES6代码报错。@babel/preset-env
配置:@babel/preset-env
配置:Proxy
)。es6-shim
补丁。WebAssembly
加速计算。Hermes
+inlineRequires
优化打包。// Android端启用JavaScript并注入接口
WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JsBridge(), "AndroidBridge");
// JavaScript调用原生方法
class JsBridge {
@JavascriptInterface
public void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
// 网页端调用
AndroidBridge.showToast("Hello from JS!");
建议开发者始终通过canIuse
等工具检测特性支持,并在必要时提供Polyfill或降级方案。