連接地址: java
確保連接地址 在瀏覽器中是能夠訪問:android
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那邊定義一致 */ } }
<?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>
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那邊定義一致 */ } }
<?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>