安卓混合开发,使用WebView控件展示网页


页面使用webview控件来实现,WebView是Android系统提供能显示网页的系统控件,它是一个特殊的View,他的作用就是

  • 显示和渲染Web页面
  • 加载网络上或本地assets中的html文件
  • 与JavaScript交互调用

常用于同态变化比较大的页面时使用

第一步:

在AndroidManifest.xml下添加网络访问权限,如果需要外网访问的情况下

<!--网络权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--文件读写权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

第二步:

在xml下添加WebView控件

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

第三步:

把 activity 中的内容复制过去,注意这里是本地加载:把 html 文件保存到了本地 asset 目录中,远程加载的话直接修改 loadUrl 即可

public class MainActivity extends AppCompatActivity {
    
    
    private WebView webv=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取到webview控件
        WebView webv=findViewById(R.id.mywebview);

        WebSettings webSettings = webv.getSettings();
        webSettings.setJavaScriptEnabled(true);//设置支持Javascript
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//允许js弹出窗口

        //访问本地资源文件网页
        webv.loadUrl("file:///android_asset/index.html");

        //通过下面的代码阻止APP直接通过浏览器打开网页
        webv.setWebViewClient(new WebViewClient(){
    
    
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
    
    
                //使用WebView加载URL内容
                view.loadUrl(url);
                return  true;
            }
        });
        //如果要实习alert弹框,必须实现此监听事件
        webv.setWebChromeClient(new WebChromeClient() {
    
    
            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
    
    
                // TODO Auto-generated method stub
                return super.onJsAlert(view, url, message, result);
            }
        });
    }
}

第四步:

创建assets目录

右键【app】-【New】-【Folder】-【Assets Folder】-【finish】

把目录下 test 文件夹内文件全部复制到 assets 目录中

猜你喜欢

转载自blog.csdn.net/q20010619/article/details/125131155
今日推荐