美文网首页
webview的使用

webview的使用

作者: jiluyixia | 来源:发表于2019-10-29 16:21 被阅读0次

布局写好了,接下来给他们添加点击事件。
因为这些跳转都是到web界面,所以看一下WebView的实现。
首先定义xml:

<?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/web"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

定义一个activity:

public class WebViewActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//去掉页面title
        setContentView(R.layout.webview);
        String urlString = getIntent().getStringExtra(ConstantsUtil.LOCAL_URL);
        WebView webView = (WebView)findViewById(R.id.web);
        webView.loadUrl(urlString);
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
    }
}

添加权限和申明activity

<uses-permission android:name="android.permission.INTERNET" />

在点击事件里跳转:

Intent startIntent = new Intent(context, WebViewActivity.class);
startIntent.putExtra(ConstantsUtil.LOCAL_URL, url);
context.startActivity(startIntent);

但是页面并没有显示内容。
可以尝试加以下方法:

WebSettings settings = webView.getSettings();
settings.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false
settings.setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞
settings.setSupportZoom(true);//是否可以缩放,默认true
settings.setBuiltInZoomControls(true);//是否显示缩放按钮,默认false
settings.setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式
settings.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题
settings.setAppCacheEnabled(true);//是否使用缓存
settings.setDomStorageEnabled(true);//DOM Storage

加了后,可以正常显示了。

具体使用代码如下:
https://github.com/doudousang/webview.git
参考网址:
Android WebView 的使用(超详细用法)
解决webview打不开网页的问题

另外,运行在9.0手机上,发现网络获取不到数据,需要在res里面建一个xml文件夹,再建一个xml文件:network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

再在manifest的application里面,添加一行

android:networkSecurityConfig="@xml/network_security_config"

就可以了。
flutter的应用,同样可以在android代码里面加上这个,就能运行了。
参考网址:
Android 9.0 http无法访问网络问题

相关文章

网友评论

      本文标题:webview的使用

      本文链接:https://www.haomeiwen.com/subject/uhlgvctx.html