Android WebView JavaScript交互
来源:互联网 发布:js时间选择控件 编辑:程序博客网 时间:2024/06/05 14:47
介绍一下,Android中Webview与JavaScript的交互,首先是在布局文件里添加webview控件:
- <WebView
- android:id="@+id/webview"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" />
然后是在manifest里添加权限:
- <uses-permission android:name="and
要是webview能够与JavaScript交互,首先需要webview要启用JavaScript:
- WebSettings webSettings = myWebView.getSettings();
- webSettings.setJavaScriptEnabled(true);
然后创建JavaScript的接口:
- public class WebAppInterface {
- Context mContext;
- /** Instantiate the interface and set the context */
- WebAppInterface(Context c) {
- mContext = c;
- }
- /** Show a toast from the web page */
- @JavascriptInterface
- public void showToast(String toast) {
- Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
- }
- }
给webview添加JavaScript接口:
- myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
本地JavaScript文件:
- <input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
- <script type="text/javascript">
- function showAndroidToast(toast) {
- Android.showToast(toast);
- }
- </script>
整个代码如下:
- public class MainActivity extends Activity {
- private WebView myWebView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- myWebView = (WebView) findViewById(R.id.webview);
- WebSettings webSettings = myWebView.getSettings();
- webSettings.setJavaScriptEnabled(true);
- myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
- ProcessWebString();
- }
- public class WebAppInterface {
- Context mContext;
- /** Instantiate the interface and set the context */
- WebAppInterface(Context c) {
- mContext = c;
- }
- /** Show a toast from the web page */
- @JavascriptInterface
- public void showToast(String toast) {
- Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
- }
- }
- private void ProcessWebString() {
- // 加载 asset 文件
- String tpl = getFromAssets("web_tpl.html");
- myWebView.loadDataWithBaseURL(null, tpl, "text/html", "utf-8", null);
- }
- /*
- * 获取html文件
- */
- public String getFromAssets(String fileName) {
- try {
- InputStreamReader inputReader = new InputStreamReader(
- getResources().getAssets().open(fileName));
- BufferedReader bufReader = new BufferedReader(inputReader);
- String line = "";
- String Result = "";
- while ((line = bufReader.readLine()) != null)
- Result += line;
- return Result;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return "";
- }
- }
运行效果:
转自:http://blog.csdn.net/phj_981805903/article/details/12573735
0 0
- Android WebView JavaScript交互
- Android WebView JavaScript交互
- Android WebView JavaScript交互
- android webview 与 javascript交互
- android webview and javascript 交互
- Android:WebView与Javascript交互
- WebView与JavaScript交互--Android
- Android WebView与JavaScript交互
- android WebView 与javaScript交互
- Android WebView与JavaScript 交互
- Android WebView 与 JavaScript 交互
- Android WebView 与 javascript交互
- Android WebView与Javascript交互
- Android WebView和JavaScript交互
- android webview与javascript交互调用
- Android ---- WebView与JavaScript交互调用(1)
- Android ---- WebView与JavaScript交互调用(2)
- Android中webview跟JAVASCRIPT中的交互
- Unity3D 游戏开发构架篇 ——角色类的设计与持久化
- Linux环境Apache+Django+wsgi配置
- 计算机经典书籍(纯屌丝)
- java 8 tour
- 放纵激情(一)
- Android WebView JavaScript交互
- SQL Profiler的简单使用
- android recovery.img定制之recovery.fstab分区表配置
- 素数的计算-埃氏筛法(区间素数利器)
- Android使用HttpURLConnection下载图片
- Oracle-第十讲,事务处理
- csdn添加临时会话功能
- mysql空间扩展 VS PostGIS
- FZU A-B problem