Android JavaScript调用Java 方法
2015-03-31 14:05
411 查看
在网络上面找了很多例子,都不能正常显示,自己直接看Google Doc查询.
下面是MainActivity
下面是layout
注意!
1.Android4.2以上的版本中 JS调用Java的方法中必须有@JavascriptInterface修饰
比如JSInstance中的showToast上面有@JavascriptInterface修饰.
2.不能新建html文件,要下载依赖包.
资源下载地址:点击下载
下面是MainActivity
<span style="font-size:24px;">package com.gzfgeh.jsjson; import android.support.v7.app.ActionBarActivity; import android.annotation.SuppressLint; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.webkit.WebSettings; import android.webkit.WebView; public class MainActivity extends ActionBarActivity { @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView myWebView = (WebView) findViewById(R.id.web_view); WebSettings settings = myWebView.getSettings(); settings.setJavaScriptEnabled(true); myWebView.addJavascriptInterface(new JSInstance(this), "Android"); myWebView.loadUrl("file:///android_asset/index.html"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }</span>下面是JSInterface 类
package com.gzfgeh.jsjson; import android.content.Context; import android.webkit.JavascriptInterface; import android.widget.Toast; public class JSInstance { private Context context; public JSInstance(Context context){ this.context = context; }; @JavascriptInterface public void showToast(String message) { Toast.makeText(context, message, Toast.LENGTH_LONG).show(); } }
下面是layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.gzfgeh.jsjson.MainActivity" > <WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/web_view"/> </RelativeLayout>下面是assets/index.html文件
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/> <title>No title</title> <input type="button" value="SayHello" onClick="showAndroidToast('hello Android!')"/> <script type="text/javascript"> function showAndroidToast(toast){ Android.showToast(toast); } </script> </head> <body> </body> </html>
注意!
1.Android4.2以上的版本中 JS调用Java的方法中必须有@JavascriptInterface修饰
比如JSInstance中的showToast上面有@JavascriptInterface修饰.
2.不能新建html文件,要下载依赖包.
资源下载地址:点击下载
相关文章推荐
- 利用WebView通过javascript调用android java方法
- android webview中使用Java调用JavaScript方法并获取返回值
- Android中WebView实现Javascript调用Java类方法
- android-WebView详解实例(JavaScript调用Java方法,Java调用JavaScript方法)
- Android中java和javascript方法的互相调用示例
- Android的Webview中,javascript如何调用java方法
- Android中WebView实现Javascript调用Java类方法
- Android中WebView实现Javascript调用Java类方法
- Android webview中JavaScript与Java方法的相互调用Demo
- Android的Webview中,javascript如何调用java方法
- Android WebView中使用Java调用JavaScript方法并获取返回值
- Android的Webview中,javascript如何调用java方法
- Android中在WebView里实现Javascript调用Java类的方法
- Android java 与 javascript互访(相互调用)的方法例子
- android webview中使用Java调用JavaScript方法并获取返回值_Android
- android-javascript调用java方法获取html内容
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android 中Java 和C/C++的相互调用方法
- 2011/06/13 android使用html做UI的方法---js与java的相互调用
- Android高手进阶教程之---Android与JavaScript方法相互调用