Android 中 WebView 的基本用法详解
家电维修 2023-07-16 19:17www.caominkang.com家电维修技术
加载 URL (网络或者本地 assets 文件夹下的 html 文件)
加载 html 代码
Native 和 Javascript 相互调用
加载网络 URL
ebvie.loadUrl(https://.baidu./);
加载 assets 下的 html 文件
ebvie.loadUrl(file:///android_asset/test.html);
加载 html 代码
// 两个代码差不多 // 偶尔出现乱码 ebvie.loadData(); // 比上面的好一些, 可以友好解决编码问题 ebvie.loadDataWithbaseURL();
网页的前进后退
// 网页是否可以后退 ebvie.canGoBack(); // 网页进行后退 ebvie.goBack(); // 网页是否可以前进 ebvie.canGoForard(); // 网页进行前进 ebvie.goForard(); // 网页是否可以前进/后退 steps 步 ebvie.canGoBackOrForard(int steps); // 网页进行前进/后退 steps 步 ebvie.goBackOrForard(int steps);
执行 JS 代码.
ebvie.loadUrl("javascript:alert('Hello orld!')"); ebvie.evaluateJavascript("javascript:alert('Hello orld!')", null);
2. 加载网页
建立一个最简单的 html 文件
WebVieActivity
package .example.hello; import androidx.apppat.app.AppCompatActivity; import android.os.Bundle; import android.ebkit.WebVie; public class WebVieActivity extends AppCompatActivity { // 声明 private WebVie b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVie(R.layout.activity_eb_vie); // 获取 b = findVieById(R.id.b); // 加载本地 html 文件 b.loadUrl("file:///android_asset/test.html"); } }
activity_eb_vie
加载网页上的页面
package .example.hello; import androidx.apppat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.vie.KeyEvent; import android.ebkit.WebChromeClient; import android.ebkit.WebResourceRequest; import android.ebkit.WebVie; import android.ebkit.WebVieClient; public class WebVieActivity extends AppCompatActivity { // 声明 private WebVie b; @SuppressLint("SetJavascriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVie(R.layout.activity_eb_vie); // 获取 b = findVieById(R.id.b); // 加载本地 html 文件 // b.loadUrl("file:///android_asset/test.html"); // 加载网页 html 文件 // 支持 JS 和 DOM b.getSettings().setJavascriptEnabled(true); b.getSettings().setDomStorageEnabled(true); // 防止所有后打开默认浏览器 b.setWebVieClient(ne MyWebVieClient()); b.setWebChromeClient(ne MyWebChromeClient()); b.loadUrl("https://.baidu./"); } @Override public boolean onKeyDon(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && b.canGoBack()) { b.goBack(); return true; } return super.onKeyDon(keyCode, event); } static class MyWebVieClient extends WebVieClient { @Override public boolean shouldOverrideUrlLoading(WebVie vie, WebResourceRequest request) { vie.loadUrl(request.getUrl().toString()); return super.shouldOverrideUrlLoading(vie, request); } @Override public void onPageStarted(WebVie vie, String url, Bitmap favicon) { super.onPageStarted(vie, url, favicon); Log.d("WebVieClient", "Page started..."); } @Override public void onPageFinished(WebVie vie, String url) { super.onPageFinished(vie, url); Log.d("WebVieClient", "Page Finished..."); } } class MyWebChromeClient extends WebChromeClient { @Override public void onProgressChanged(WebVie vie, int neProgress) { super.onProgressChanged(vie, neProgress); } @Override public void onReceivedTitle(WebVie vie, String title) { super.onReceivedTitle(vie, title); setTitle(title); } } }
到此这篇关于Android 中 WebVie 的基本用法的文章就介绍到这了,更多相关Android 中 WebVie 用法内容请搜索考高分网以前的文章或继续浏览下面的相关文章电脑维修网希望大家以后多多支持考高分网!
上一篇:java环境是什么
下一篇:phantomjs是什么