Android开发(五)----WebView&Activity生命周期

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android开发(五)----WebView&Activity生命周期脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

WebView

webview是一个再应用中设置好位置和大小的浏览器,而且不会放置任何花哨的UI。 在大多数情况下,除非你调用了原生API,否则不必在webview中专门测试web应用。 首先为WebView新建一个活动,并为其增加一个WebView控件

<?XMl version="1.0" encoding="utf-8"?>
<LinearLayout xMLns:andROId="http://schemas.android.COM/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/wv_1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

在app中调用本地html文件

使用loadUrl函数调用放在assets中的HTML文件。 首先需要新建一个assets,并在其中添加一个text.html文件。

Android开发(五)----WebView&Activity生命周期

调用函数:

public class WebViewActivITy extends AppCompatActivity {

    PRivate WebView wb1;

    @override
    protected void onCreate(Bundle savedInstancestate) {
        suPEr.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        wb1 = findViewById(R.id.wv_1);
        wb1.loadUrl("file:///android_asset/text.html");
	}

在app中调用网络网页资

需要用到的函数及其功能:

  • setJavaScriptEnabled(true):假设访问的页面中有Javascript,则webview必须设置支持Javascript。
  • setWebViewClient():在影响View的事件到来时,会通过WebViewClient中的方法回调通知用户。
  • setWebChromeClient():当影响浏览器的事件到来时,就会通过WebChromeClient中的方法回调通知用法。 代码如下(需要手写回调函数):
public class WebViewActivity extends AppCompatActivity {

    private WebView wb1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        wb1 = findViewById(R.id.wv_1);
        wb1.getSettings().setJavaScriptEnabled(true);//JS
        wb1.setWebViewClient(new MyWebViewClient());
        wb1.setWebChromeClient(new MyWebChromeClient());
        wb1.loadUrl("https://m.baidu.com");
    }

    class MyWebChromeClient extends WebChromeClient {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            super.onProgressChanged(view, newProgress);
        }

        @Override
        public void onReceivedTitle(WebView view, String title) {
            super.onReceivedTitle(view, title);
            setTitle(title);
        }
    }

    class MyWebViewClient extends WebViewClient{
        @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebresourceRequest request) {
            view.loadUrl(request.getUrl().toString());
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            LOG.d("WebView","stater");
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            Log.d("WebView","adsfdsf");
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK && wb1.canGoBack())
        {
            wb1.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

加载页面如图:

Android开发(五)----WebView&Activity生命周期

脚本宝典总结

以上是脚本宝典为你收集整理的Android开发(五)----WebView&Activity生命周期全部内容,希望文章能够帮你解决Android开发(五)----WebView&Activity生命周期所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。