Android 原生和 JS 交互实践
import android.os.Bundle;
import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.setWebChromeClient(new WebChromeClient());
webView.loadUrl("file:///android_asset/your_page.html");
}
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
}
这段代码展示了如何在Android原生应用中嵌入WebView组件,并与WebView中的JavaScript代码进行交互。WebAppInterface
类中的showToast
方法被添加了@JavascriptInterface
注解,以确保方法能够被JavaScript调用。在HTML文件中,可以通过调用Android.showToast(toastMessage);
来触发这个方法,从而在Android设备上显示一个Toast消息。
评论已关闭