Android-WebView加載網絡圖片&網頁

加載網絡圖片:

連接地址: java

http://bcs.link-us.com.cn/directBank/newHX149/directBank/h5/www/dist/img/e113.jpg

確保連接地址 在瀏覽器中是能夠訪問:android

 

MainActivity2代碼:

package cn.h5;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity2 extends AppCompatActivity {

    // 連接地址
    public static final String SERVER_HOST = "http://bcs.link-us.com.cn/directBank/newHX149/directBank/h5/www/dist/img/e113.jpg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        /**
         * 定義此WebView 用於去展示網絡上的圖片
         */
        WebView webView = findViewById(R.id.webview);

        /**
         * 經過此WebView 獲取到 WebSettings ,經過WebSettings設置WebView
         */
        WebSettings webSettings = webView.getSettings();

        /**
         * 設置支持JavaScript激活,可用等
         */
        webSettings.setJavaScriptEnabled(true);

        /**
         * 設置自身瀏覽器,注意:可用把WebView理解爲瀏覽器
         * 設置setWebViewClient(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);
    }

    /**
     * 此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那邊定義一致
         */
    }
}

 

activity_main2:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <!--
        定義WebView
            1.WebView能夠展示處理本地的HTML相關;
            2.WebView能夠展示處理網絡的HTML相關;
            3.WebView能夠製做自定義瀏覽器;
            ....
     -->
    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </WebView>

</LinearLayout>

 

執行結果:

 




 

 

 

加載網頁:

 MainActivity:

package cn.h5;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    // 連接地址
    // public static final String SERVER_HOST = "https://www.cnblogs.com/android-deli/"; // 連接1
    // public static final String SERVER_HOST = "https://blog.csdn.net/u011967006/";  // 連接2
    public static final String SERVER_HOST = "https://www.baidu.com";              // 連接3


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         * 定義此WebView 用於去展示網絡上的網頁
         */
        WebView webView = findViewById(R.id.webview);

        /**
         * 經過此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);
    }

    /**
     * 此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那邊定義一致
         */
    }
}

 

activity_main:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <!--
        定義WebView
            1.WebView能夠展示處理本地的HTML相關;
            2.WebView能夠展示處理網絡的HTML相關;
            3.WebView能夠製做自定義瀏覽器;
            ....
     -->
    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </WebView>

</LinearLayout>

 

連接1 執行結果:

 

連接2 執行結果:

 

 

連接3 執行結果:

相關文章
相關標籤/搜索