Webview
来源:互联网 发布:淘宝哪家玉器店好 编辑:程序博客网 时间:2024/06/15 01:26
package net.bwie.webview.activity;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Button;import net.bwie.webview.R;import net.bwie.webview.web.JavaScriptCallback;public class MainActivity extends AppCompatActivity implements View.OnClickListener { protected Button mLoadHtmlCodeBtn; protected Button mLoadHtmlUrlBtn; protected Button mLoadHtmlFileBtn; protected Button mShowHtmlAlertBtn; protected WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_main); initView(); } @Override public void onClick(View view) { if (view.getId() == R.id.load_html_code_btn) { loadHtmlCode(); } else if (view.getId() == R.id.load_html_url_btn) { loadHtmlUrl(); } else if (view.getId() == R.id.load_html_file_btn) { loadHtmlFile(); } else if (view.getId() == R.id.show_html_alert_btn) { showHtmlAlert(); } } // 加载html代码 private void loadHtmlCode() { String htmlCode = "<h1><b><i>我是江西吴彦祖</i></b></h1>"; // 加载html代码 mWebView.loadDataWithBaseURL(null, htmlCode, "text/html", "UTF-8", null); } // 加载url地址 private void loadHtmlUrl() { String url = "https://www.baidu.com/"; // 将当前应用设置为网页客户端,网页将在当前应用中打开 mWebView.setWebViewClient(new WebViewClient()); // 加载url地址 mWebView.loadUrl(url); } // 加载assets文件夹中的html文件 private void loadHtmlFile() { String fileUri = "file://" + "/android_asset/" + "index.html"; // WebView设置Chrome的内核,用于处理逻辑操作 mWebView.setWebChromeClient(new WebChromeClient()); // 设置WebView可以和JavaScript交互,通过WebView的设置启用JavaScript WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); // 给WebView添加交互用的接口 mWebView.addJavascriptInterface(new JavaScriptCallback(this), "callback"); // 加载html文件 mWebView.loadUrl(fileUri); } // 点击Android按钮弹出网页对话框 private void showHtmlAlert() { String content = "点击Android按钮,展示html对话框"; StringBuilder stringBuilder = new StringBuilder("javascript:"); stringBuilder.append("showAlert(") .append("'" + content + "'") .append(")"); // Android调用html mWebView.loadUrl(stringBuilder.toString()); } private void initView() { mLoadHtmlCodeBtn = (Button) findViewById(R.id.load_html_code_btn); mLoadHtmlCodeBtn.setOnClickListener(MainActivity.this); mLoadHtmlUrlBtn = (Button) findViewById(R.id.load_html_url_btn); mLoadHtmlUrlBtn.setOnClickListener(MainActivity.this); mLoadHtmlFileBtn = (Button) findViewById(R.id.load_html_file_btn); mLoadHtmlFileBtn.setOnClickListener(MainActivity.this); mWebView = (WebView) findViewById(R.id.web_view); mShowHtmlAlertBtn = (Button) findViewById(R.id.show_html_alert_btn); mShowHtmlAlertBtn.setOnClickListener(MainActivity.this); } // 重写系统返回键,判断WebView是否到达首页 @Override public void onBackPressed() { // 判断WebView是否可返回上一页 if (mWebView.canGoBack()) { mWebView.goBack(); } else { super.onBackPressed(); } }}
还有一个交互类和html
package net.bwie.webview.web;import android.content.Context;import android.webkit.JavascriptInterface;import android.widget.Toast;// html调用Android的接口回调// 注意:类型是class而不是interfacepublic class JavaScriptCallback { private Context mContext; public JavaScriptCallback(Context context) { mContext = context; } // 展示Android的吐司 @JavascriptInterface public void showToast(String content) { Toast.makeText(mContext, content, Toast.LENGTH_SHORT).show(); }}
以及参考的网页
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>我的网页</title></head><body><p>我是html页面</p><button onclick="showAndroidToast()">点击网页按钮展示Android吐丝儿</button></body><script> // 在JavaScript中声明一个展示Android吐司的函数 function showAndroidToast() { var content = "点击网页按钮展示了Android吐司"; // 在Android的WebView中添加与JS交互的接口时,并设定了该接口名 // 使用接口调用Android的方法即可 callback.showToast(content); } // 弹出对话框 function showAlert(content) { alert(content); }</script></html>
阅读全文
0 0
- WebView
- WebView
- WebView
- webView
- webView
- webview
- webview
- WebView
- webview
- webview
- webview
- WebView
- webView
- webview
- webView
- webview
- WebView
- WebView
- Remoting和Webservice的区别
- Centos 6.5安装mongoDB3.4配置权限并备份数据
- Mac-音量被锁死了
- 使用 scikit-learn 介绍机器学习 | ApacheCN
- python3 爬虫入门(一)urlib库基本使用
- Webview
- C#计算日期差(后台)
- [学习笔记] Java核心技术 卷一:基础知识 并发(七)
- FIDO android客户端认证
- js绘制sin曲线(波浪线)
- ubuntu 忘记用户名和密码
- 十九、< 2015小米暑期实习笔试题>风口的猪-中国牛市
- 编程思想 消息机制
- 【Scikit-Learn 中文文档】使用 scikit-learn 介绍机器学习 | ApacheCN