zoukankan      html  css  js  c++  java
  • 安卓开发笔记(二十二):读取本地(内置)html文件并实现和Javascript交互

    实际上我们通常是使用WebView控件对本地html进行读取,这样就可以体会类似web app和安卓原生混合开发的乐趣了。在读取本地html并展示在前台的时候,并不需要在Androidmenifast.xml文件当中设置相应的网络权限,也不需要设置https协议,因为安卓手机的本地服务器应该都是基于http协议的,一个手机又不可能去申请一个ssl安全证书。我们只需要把WebView控件访问基于http协议的网络的代码稍作修改即可,在写代码之前,我们还需要创建一个assets文件夹,将我们所对应的html文件放置在这个文件夹里,具体创建这个文件夹的过程可以参见这篇博客:https://www.cnblogs.com/geeksongs/p/10673133.html     

    我们的代码如下:

     MainActivity.java

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.net.http.SslError;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.webkit.SslErrorHandler;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    
    public class MainActivity extends AppCompatActivity {
        private WebView webView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            init();
        }
    
        private void init(){
            webView = (WebView) findViewById(R.id.webView);
            //需要加载的网页的url
            webView.loadUrl("file:///android_asset/index2.html");//这里写的是assets文件夹下html文件的名称,需要带上后面的后缀名,前面的路径是安卓系统自己规定的android_asset就是表示的在assets文件夹下的意思。
            webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//自适应屏幕
            webView.getSettings().setLoadWithOverviewMode(true);//自适应屏幕
            webView.getSettings().setSupportZoom(true);
            webView.getSettings().setUseWideViewPort(true);//扩大比例的缩放
            webView.getSettings().setBuiltInZoomControls(true);//设置是否出现缩放工具
            WebSettings settings = webView.getSettings();
            // 如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript
            settings.setJavaScriptEnabled(true);
            webView.setWebViewClient(new WebViewClient(){
                public boolean shouldOverrideUrlLoading(WebView view, String url){
                    view.loadUrl(url);
                    return true;
                }
            });}
    
    }

    我觉得上面注释也写得比较详细了,可以根据自己的需求根据注释作一些必要的更改。

  • 相关阅读:
    "Blessing of Dimisionality: High Dimensional Feature and Its Efficient Compression for Face Verification"学习笔记
    java删除目录下符合条件的文件
    java nio buffer读取数据乱码问题
    MySql 存储过程实例(附完整注释)
    mysql truncate、delete与drop区别
    Java的位运算符—与(&)、非(~)、或(|)、异或(^)
    mysql 用户管理和权限设置
    Sublime Text3 安装Markdown
    session 超时设置
    Nginx配置详解
  • 原文地址:https://www.cnblogs.com/geeksongs/p/10674175.html
Copyright © 2011-2022 走看看