zoukankan      html  css  js  c++  java
  • Android-WebView加载网页(new WebView(this)方式)

    之前的博客,都是 findViewById(R.id.webview);,来得到WebView, 此博客使用 new WebView(this)方式;

     

    AndroidManifest.xml中配置网络访问权限:

       <!-- 网络访问权限 -->
        <uses-permission android:name="android.permission.INTERNET" />

    Activity:

    package cn.h5;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.webkit.JavascriptInterface;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    
    /**
     * WebView的另外种方式
     */
    public class MainActivity6 extends AppCompatActivity {
    
        // 链接地址
        public static final String SERVER_HOST = "https://www.sina.com.cn";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            /**
             * 定义此WebView 用于去展现网络上的网页
             */
            WebView webView = new WebView(this);
    
            /**
             * 通过此WebView 获取到 WebSettings ,通过WebSettings设置WebView
             */
            WebSettings webSettings = webView.getSettings();
    
            /**
             * 设置支持JavaScript激活,可用等
             */
            webSettings.setJavaScriptEnabled(true);
    
            /**
             * 设置自身浏览器,注意:可用把WebView理解为浏览器,设置new WebViewClient()后,手机就不会跳转其他的浏览器
             */
            webView.setWebViewClient(new WebViewClient());
    
            /**
             * addJavascriptInterface是添加(给js调用-->Java方法)
             * JSHook里面的方法 就是给JavaScript调用的;
             * androidCallbackAction是JavaScript/HTML/H5那边定义定义的标识,所以必须和JavaScript/HTML/H5那边定义标识一致
             */
            webView.addJavascriptInterface(new JSHook(),"androidCallbackAction");
    
            webView.loadUrl(SERVER_HOST);
    
            /**
             * 设置好webView.loadUrl(SERVER_HOST);后,需要setContentView(webView);
             */
            setContentView(webView);
        }
    
        /**
         * 此JSHook类名是睡意取得
         * 也可以取名Wie JavaScriptCallbackJava
         *              JavaScriptToJava
         *              ......
         */
        class JSHook {
    
            /**
             * 给JavaScript调用的方法
             * 注意:方法名 方法参数 必须和 JavaScript/HTML/H5那边定义一致
             */
            @JavascriptInterface // 高版本需要加入此@JavascriptInterface
            public void javaScriptToJava1() {
                Log.d("@@@", "JavaScript调用当前此方法.....");
            }
    
            /**
             * 给JavaScript调用的方法
             * 注意:方法名 方法参数 必须和 JavaScript/HTML/H5那边定义一致
             */
            @JavascriptInterface // 高版本需要加入此@JavascriptInterface
            public void startToCallActivity() {
                Log.d("@@@", "JavaScript调用当前此方法.....");
            }
    
            /**
             * 给JavaScript调用的方法
             * 注意:方法名 方法参数 必须和 JavaScript/HTML/H5那边定义一致
             */
            @JavascriptInterface // 高版本需要加入此@JavascriptInterface
            public void updateListData() {
                Log.d("@@@", "JavaScript调用当前此方法.....");
            }
    
            /**
             * 给JavaScript调用的方法
             * 注意:方法名 方法参数 必须和 JavaScript/HTML/H5那边定义一致
             */
            @JavascriptInterface // 高版本需要加入此@JavascriptInterface
            public void requestByID(int id, String flag) {
                Log.d("@@@", "JavaScript调用当前此方法.....");
            }
    
            /**
             * 给JavaScript调用的方法
             * 注意:方法名 方法参数 必须和 JavaScript/HTML/H5那边定义一致
             */
            @JavascriptInterface // 高版本需要加入此@JavascriptInterface
            public String getThisInfoData() {
                Log.d("@@@", "JavaScript调用当前此方法.....");
                return "ljfr4sfdsfs";
            }
    
            /**
             * JavaScript/HTML/H5 那边定义要回调Android的Java 哪些方法,就可用在JSHook中定义
             * 注意:方法名 方法参数 必须和 JavaScript/HTML/H5那边定义一致
             */
        }
    }

    执行结果:

  • 相关阅读:
    fenby C语言 P9
    fenby C语言 p7
    fenby C语言 P6
    fenby C语言
    让博客园博客自动生成章节目录索引
    python学习之路:生成器并行运算
    Python学习之路:生成器
    Python学习之路:装饰器实现终极版
    Python学习之路:装饰器实现2
    Python学习之路:装饰器实现
  • 原文地址:https://www.cnblogs.com/android-deli/p/10339179.html
Copyright © 2011-2022 走看看