Android-WebView加载网络图片&网页
2024-08-30 14:18:20
加载网络图片:
链接地址:
http://bcs.link-us.com.cn/directBank/newHX149/directBank/h5/www/dist/img/e113.jpg
确保链接地址 在浏览器中是可以访问:
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 执行结果:
最新文章
- 谷歌chrome浏览器www.tradeadexchange.com广告弹窗跳转劫持病毒
- ubuntu 14 中tomcat的开机启动设置
- window的git extensions保存密码
- 简易的可拖动的桌面悬浮窗效果Demo
- Sql不区分大小写查询
- swap文件
- android app性能优化大汇总(google官方Android性能优化典范 - 第2季)
- hadoop2.20.0集群安装教程
- NGUI panel使用soft clip时,屏幕缩放后无法正常工作的问题解决
- 187. Repeated DNA Sequences
- [置顶] 深入理解android之IPC机制与Binder框架
- opencv 批量图像读写
- 2440裸 Delay(); 和 while(!(rUTRSTAT0 &;amp; 0x2)); 问题
- Import Excel void (NPOI)
- AMBA总线协议AHB、APB、AXI对比分析【转】
- 3分钟快速presentation
- [ovs][libvirt][virtio][qemu] vhost user client 排障
- python基础4文件操作
- ConcurrentModificationException原因及排除
- 【读书笔记】思维导图 Talk Like Ted