APP开发_Android 与 js 互相调用
在Android应用中与JavaScript互相调用,通常使用WebView组件。以下是一个简单的例子:
- 在Android中调用JavaScript:
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
// 加载页面
webView.loadUrl("file:///android_asset/your_page.html");
// 在Java中调用JavaScript函数
webView.evaluateJavascript("javascriptFunction()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
// 处理JavaScript返回的结果
}
});
- 在JavaScript中调用Android:
首先在HTML中添加一个按钮,当被点击时调用JavaScript函数:
<!-- your_page.html -->
<button onclick="callAndroidFunction()">Call Android Function</button>
<script type="text/javascript">
function callAndroidFunction() {
// 调用Android中的方法
// 假设你的Android类名为YourActivity,方法名为updateFromJS
YourActivity.updateFromJS(param1, param2);
}
</script>
然后在Android的Activity中添加对应的方法供JavaScript调用:
// 添加@JavascriptInterface注解以确保API的可访问性
public class YourActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_your);
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "YourActivity");
webView.loadUrl("file:///android_asset/your_page.html");
}
// 被JavaScript调用的方法
@JavascriptInterface
public void updateFromJS(String param1, String param2) {
// 处理JavaScript传来的参数
}
// 内部类,用于Web视图与Android之间的交互
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
// 可供JavaScript调用的方法
@JavascriptInterface
public void updateFromJS(String param1, String param2) {
// 调用Android中的方法
}
}
}
确保在AndroidManifest.xml中添加网络权限(如果需要):
<uses-permission android:name="android.permission.INTERNET" />
以上代码提供了一个简单的示例,展示了如何在Android应用中嵌入WebView组件,并实现Java与JavaScript之间的交互。
评论已关闭