Android 4.4 后才可使用
public class MainActivity extends Activity {
WebView webView;
Button buttonLeft, buttonRight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webview);
buttonLeft = findViewById(R.id.btnLeft);
buttonRight = findViewById(R.id.btnRight);
WebSettings webSettings = webView.getSettings();
//允许使用JS
webSettings.setJavaScriptEnabled(true);
// 设置允许JS弹窗
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.loadUrl("file:///android_asset/index.html");
buttonLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
webView.post(new Runnable() {
@Override
public void run() {
webView.evaluateJavascript("javascript:callJS()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
//将button显示的文字改成JS返回的字符串
buttonLeft.setText(s);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
b.setTitle("alert1");
b.setMessage(message);
b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
result.confirm();
b.setCancelable(false);
b.create().show();
return true;
因为该方法的执行不会使页面刷新,而方法(loadUrl )的执行则会使页面刷新。 Android 4.4 后才可使用 public class MainActivity extends Activity { WebView webView; Button buttonLeft, buttonRight; @Override protected void onC...
android 4.4以下跟H5交互需要调用webview的loadUrl(javascript:方法名(参数))来实现调用js方法。如果需要网页获取返回值还需要网页调用安卓 @JavaScriptInterface 注解的方法才可以。
Android 4.4以上调用webview.evaluateJavascript(javascript:方法名(参数),new ValueCallback{...
// 被JS调用的方法必须加入@JavascriptInterface注解
@JavascriptInterface
public void callAndroid(String msg){
Log.e(l2,JS调用了Android的callAndroid(),msg : + msg);
2.activitiy类,webview设置,把接口方法添
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
Android中可以使用WebView加载网页,同时Android端的Java代码可以与网页上的JavaScript代码之间相互调用。
Activity代码:
//在js中调用本地java方法
webView.addJavascriptInterface(new JsInterface(this), "AndroidWebView");
//添加客户端支持
webView.
一、前期准备(Vue项目准备)
本文的 H5 端用Vue 实现,所以在正式开始前先把 Vue 项目环境准备好。
项目写好后,执行 npm run serve 命令启动项目,启动成功后会在命令行看到两个地址:
http://localhost:8080/ ,和 http://10.0.0.188:8080/。
10.0.0.188 是我本机的 ip 地址,每个人的不一样。
2. 在Android中,使用WebView的loadUrl方法来调用该函数,例如:
webView.loadUrl("javascript:myFunction()");
这样就可以在Android中调用React TS中定义的函数了。
lkf181:
如何自定义一个45度旋转的TextView,实现类似右上角文字角标的效果
lkf181:
Android 深入浅出AIDL(二)
CSDN-Ada助手:
Android 深入浅出AIDL(一)
CSDN-Ada助手: