之前的博客,都是 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那边定义一致
*/
}
}

执行结果:

Android-WebView加载网页(new WebView(this)方式)的更多相关文章

  1. Android中Http加载如何得到Cookie和 WebView 加载网页如何得到的Cookie

    最近做项目在手机端登录Http请求和 WebView 记载登录获取Cookie信息,可查看Cookie信息. 如图: Http请求获取Cookie信息: public static String re ...

  2. WebView 加载网页 加载资源 总结 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  3. WebView 加载网页和java 与js交互

    [mw_shl_code=java,true]WebView是一个可以显示网页的控件.需求:通过WebView加载assets下的html文件.实现页面的缩放.向menu键添加:前进.后退和刷新,实现 ...

  4. WebView加载页面的两种方式——网络页面和本地页面

    WebView加载页面的两种方式 一.加载网络页面 加载网络页面,是最简单的一种方式,只需要传入http的URL就可以,实现WebView加载网络页面 代码如下图: 二.加载本地页面 1.加载asse ...

  5. Android WebView 加载网页

    通过Android 中 WebView 控件加载HTML5 页面,这是实现Android 混合开发的基础. 选择加载的网页可以是本地,也可用使远程的.需要添加访问互联网的权限:<uses-per ...

  6. Flutter ------- WebView加载网页

    在Flutter 加载网页?也是有WebView的哦,和Android一样 1.添加依赖 dependencies: flutter_webview_plugin: ^0.2.1+2 2.导入库 im ...

  7. iOS之webview加载网页、文件、html的方法

    UIWebView  是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf.word.doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽  2.通过a ...

  8. webview加载网页加载不出来

    1.webView.loadUrl(picTargetUrl); 写在最前面. 1.在无线城市迷你版的项目,用webview去loadUrl的时候出现加载的现象. url 地址是 http://go. ...

  9. bootstrap模态框远程加载网页的正确处理方式

    bootstrap模态框远程加载网页的方法 在bootsrap模态框文档里给出了这个方法: 使用链接模式 <a data-toggle="modal" href=" ...

  10. Android使用Webview加载网页

    安卓使用Webview来加载和显示网页内容,首先在layout文件中定义Webview <?xml version="1.0" encoding="utf-8&qu ...

随机推荐

  1. Intellij IDEA 快捷键整理-鬼畜版(全键盘开发指南)

    一 .何为鬼畜? 鬼畜一词在ACG爱好者中也代指通过影片(或音讯)剪辑,用频率极高的重复画面(或声音)组合而成的一段节奏配合音画同步率极高的一类影片,而这类鬼畜影片多见于NICONICO.AcFun和 ...

  2. MSI-X 之有别于MSI

    转自: https://www.cnblogs.com/helloworldspace/p/6760718.html MSI-X Capability结构 MSI-X Capability中断机制与M ...

  3. [Jmeter] Concurrency Thread Group

    Concurrency Thread Group : https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/ 参数介绍: Target Conc ...

  4. java通过接口扩展枚举

    package com.hra.riskprice; import com.hra.riskprice.SysEnum.Factor_Type; import com.hra.riskprice.po ...

  5. html5 data-*自定义属性取值

    demo: <!DOCTYPE HTML> <html> <head> <title></title> <meta http-equi ...

  6. Spring Boot学习笔记:ApplicationEvent和ApplicationEventListener事件监听

    采用事件监听的好处 以用户注册的业务逻辑为例,用户在填写完信息表单后,提交信息到后台,后台对用户信息进行处理,然后给用户返回处理结果的信息. 如上图所示,用户在注册时,后台需要处理一些系列流程,实际业 ...

  7. java script入门之知识

    1.注释 /*              */ 多行 //单行 2.常见形式 <!DOCTYPE html><html><head><title>My ...

  8. Select isnull(,)

    类似于 select isnull(...,1) from table 这样的 isnull函数防止查询结果为空,防止接下来需要这个值时可能造成空指针异常

  9. 乘积最大(NOIP2000&NOIP水题测试(2017082301))

    题目链接:乘积最大 这道题显然是道区间dp. 难度不是很大. 思路也很清晰. 我们设计一个三维状态. ans[l][r][k] 这里表示在闭区间[l,r]上操作k次的最大值. 操作就是加乘号. 转移也 ...

  10. 海港(NOIP2016)

    题目链接:海港 这一题怎么样呢?还好吧,也不是太难,没有用到什么特殊的算法,但写法还是很值得学习的.下面讲一下思路: 我们维护三个队列(这里我们采用自己手写的队列,因为这比STL的要快,不过这一题,S ...