X5内核,微信和QQ浏览器都在用的WebView; 官网地址:http://x5.tencent.com,详细的信息进官网了解;

这是官方的宣传语:

1) 速度快:相比系统webview的网页打开速度有30+%的提升;

2) 省流量:使用云端优化技术使流量节省20+%;

3) 更安全:安全问题可以在24小时内修复;

4) 更稳定:经过亿级用户的使用考验,CRASH率低于0.15%;

5) 兼容好:无系统内核的碎片化问题,更少的兼容性问题;

6) 体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能;

7) 功能全:在Html5、ES6上有更完整支持;

8) 更强大:集成强大的视频播放器,支持视频格式远多于系统webview;

9) 视频和文件格式的支持x5内核多于系统内核

10) 防劫持是x5内核的一大亮点

1、下载SDK:

2 解压出tbs_sdk_thirdapp_v4.3.0.1148_43697_sharewithdownloadwithfile_withoutGame_obfs_20190805_175505.jar 文件

拷贝到lib目录 然后右键  add as libratry 好像是这个

SDK中附有so文件,看需求引入,

3 初始化

创建一个类package com.example.administrator.myapplication;

import android.app.Application;

import android.util.Log;

import com.tencent.smtt.sdk.QbSdk;

public class APPAplication extends Application {

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。

QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

@Override

public void onViewInitFinished(boolean arg0) {

// TODO Auto-generated method stub

//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。

Log.d("app", " onViewInitFinished is " + arg0);

}

@Override

public void onCoreInitFinished() {

// TODO Auto-generated method stub

}

};

//x5内核初始化接口

QbSdk.initX5Environment(getApplicationContext(),  cb);

}

}

然后在AndroidManifest.xml 中指定

同时 增加权限

自定义X5WebView类package com.example.administrator.myapplication;

import android.annotation.SuppressLint;

import android.content.Context;

import android.util.AttributeSet;

import com.tencent.smtt.sdk.WebSettings;

import com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm;

import com.tencent.smtt.sdk.WebView;

import com.tencent.smtt.sdk.WebViewClient;

public class X5WebView extends WebView {

private WebViewClient client = new WebViewClient() {

/**

* 防止加载网页时调起系统浏览器

*/

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

};

@SuppressLint("SetJavaScriptEnabled")

public X5WebView(Context arg0, AttributeSet arg1) {

super(arg0, arg1);

this.setWebViewClient(client);

// this.setWebChromeClient(chromeClient);

// WebStorage webStorage = WebStorage.getInstance();

initWebViewSettings();

this.getView().setClickable(true);

}

private void initWebViewSettings() {

WebSettings webSetting = this.getSettings();

webSetting.setJavaScriptEnabled(true);

webSetting.setJavaScriptCanOpenWindowsAutomatically(true);

webSetting.setAllowFileAccess(true);

webSetting.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);

webSetting.setSupportZoom(true);

webSetting.setBuiltInZoomControls(true);

webSetting.setUseWideViewPort(true);

webSetting.setSupportMultipleWindows(true);

// webSetting.setLoadWithOverviewMode(true);

webSetting.setAppCacheEnabled(true);

// webSetting.setDatabaseEnabled(true);

webSetting.setDomStorageEnabled(true);

webSetting.setGeolocationEnabled(true);

webSetting.setAppCacheMaxSize(Long.MAX_VALUE);

// webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);

webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);

// webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);

webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);

// this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension

// settings 的设计

}

public X5WebView(Context arg0) {

super(arg0);

setBackgroundColor(85621);

}

}

在活动中使用<?xml  version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/x5_webview"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

后台代码package com.example.administrator.myapplication;

import android.Manifest;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.content.pm.PackageManager;

import android.database.Cursor;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.net.Uri;

import android.provider.ContactsContract;

import android.support.annotation.Nullable;

import android.support.v4.app.ActivityCompat;

import android.support.v4.content.ContextCompat;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.View;

import android.webkit.WebChromeClient;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;

import android.widget.Toast;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

private static final String mHomeUrl = "http://www.bamn.cn";

private X5WebView mX5WebView;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initHardwareAccelerate();

initView();

}

/**

* 启用硬件加速

*/

private void initHardwareAccelerate() {

try {

if (Integer.parseInt(android.os.Build.VERSION.SDK) >= 11) {

getWindow()

.setFlags(

android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,

android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

}

} catch (Exception e) {

}

}

private void initView() {

mX5WebView = (X5WebView) findViewById(R.id.x5_webview);

mX5WebView.loadUrl(mHomeUrl);

}

/**

* 返回键监听

* @param keyCode

* @param event

* @return

*/

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

if (mX5WebView != null && mX5WebView.canGoBack()) {

mX5WebView.goBack();

return true;

} else {

return super.onKeyDown(keyCode, event);

}

}

return super.onKeyDown(keyCode, event);

}

@Override

protected void onDestroy() {

//释放资源

if (mX5WebView != null)

mX5WebView.destroy();

super.onDestroy();

}

}

android x5 浏览器教程,064-腾讯的X5WebView内嵌浏览器引擎的使用相关推荐

  1. js 判断当前浏览器类型 判断当前是否是微信内嵌浏览器(是否是APP内嵌webView)

    js的浏览器navigator头信息 myBrowserType(){var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isOp ...

  2. android crosswalk闪退,一篇文章读懂开源内嵌浏览器Crosswalk【转载】

    本帖最后由 ecoolper 于 2014-12-24 17:55 编辑 Web技术的优势早已被广大 Crosswalk作为一款开源的web引擎,正是为了跨越这些障碍而生.目前Crosswalk正式支 ...

  3. PHPStorm内嵌浏览器配置教程

    端口号 问题:phpstorm默认的端口号是:63342与默认的80端口号不一致,打开就显示502错误. 配置教程 注意点击+后,选择Type选择In place.这样就可以用内嵌浏览器进行debug ...

  4. 微信及企业微信内嵌浏览器内核信息及H5跑分数据-企业微信开发

    加我微信li570467731,拉你进二百多人企业微信开发同行群(文末有二维码). 企业微信开发三部曲: <企业微信应用开发概述篇(免费)>已完结: <企业微信开发第三方应用开发篇& ...

  5. C# WPF使用CefSharp客户端内嵌浏览器做一个开小差工具

    前言 CefSharp是一个C#客户端内嵌入chromium开源项目浏览器的工具,方便在客户端中自然的访问网页内容,十分好用.当然,网上有很多使用CefSharp的教程了,怎么使用都很详尽.我这里只是 ...

  6. 【java】本地客户端内嵌浏览器3 - Swing 使用 Spring 框架 + 打包项目 + 转exe + 源码

    目录 ★☆★ 写在前面 ★☆★ ★☆★ 本系列文章 ★☆★ ★☆★ 开源网址 ★☆★ 一.给 Swing 加上 Spring 0.前期努力 I. SpringBoot II. SpringMVC 1. ...

  7. unity内嵌浏览器——UniWebView插件

    这次突然被要求实现内嵌浏览器.在网上到处找资料参考,下面几个链接的内容感觉很实用 https://blog.csdn.net/qq_37310110/article/details/79761844 ...

  8. C++混合编程:QCefView、QWebKit,QWebengine、miniblink内嵌浏览器对比

       随着前端技术的发展,PC端程序越来越倾向于做第三方嵌入浏览器的应用程序.为什么手机软件安装包越来越大,大概率是由于偷偷嵌入了一个浏览器内核,例如:腾讯视频.虾米音乐等主流PC端程序都是内嵌浏览器 ...

  9. 【java】本地客户端内嵌浏览器2 - chrome/chromium/cef/jcef

    目录 ★☆★ 写在前面 ★☆★ ★☆★ 本系列文章 ★☆★ ★☆★ 开源网址 ★☆★ 一.发现新大陆 - CEF/JCEF 0.前言 1.使用 jcef.jar 搭建项目 2.启动包含 jcef.ja ...

  10. Java实现内嵌浏览器

    创建项目 ---->   导入需要的jar ---->  代码实现 需要的jar: https://pan.baidu.com/s/1MEZ1S0LnKSMGQm24QWgmCw 代码: ...

最新文章

  1. 鸟哥学习笔记---网络安全基础
  2. LeetCode——15. 3Sum
  3. 浏览器插件 火狐插件
  4. ARP协议SMTP协议MIME
  5. git获取本地版本号_Git使用小结
  6. Python中dir,hasattr,getattr,setattr,vars的使用
  7. 二叉树、多叉树子路径遍历
  8. 初二因式分解奥数竞赛题_八年级数学因式分解专项练习试题.doc
  9. python3生成文件对象(五分钟读懂)
  10. MacBook Pro 如何删除多余专注模式?
  11. 中断触发后无法进入服务程序_51单片机的中断系统及应用
  12. ASP.NET Web Pages - WebGrid 帮助器
  13. Win11如何关闭445端口?Win11关闭445端口的方法
  14. 《匆匆那年》的你,还记得吗?数学中的那些有(hui)趣(se)的定理(4)——无限猴子定理
  15. 通信教程 | 波特率、比特率、通信速度的区别
  16. 第一次学游泳技巧_初学者第一次下水需要注意哪些情况,新手学习游泳需要掌握什么技巧,适合的游泳装备有哪些...
  17. SkyWalking系列之skywalking go agent配置使用
  18. EasyPusher手机直播推送是如何实现后台直播推送的
  19. 文化袁探索专栏——线程池执行原理|线程复用|线程回收
  20. 揭秘:雷电模拟器工作方式

热门文章

  1. 如何安装matlab2016b
  2. 天刀找不到服务器,《天涯明月刀手游》好友服务器查看方法 怎么查看好友在哪个区...
  3. c语言程序怎样缩进整体,C语言程序设计基础概念
  4. Anaconda版本选择 Python3.6版本的Anaconda下载
  5. HTML5期末大作业:一款基于HTML+CSS+JavaScript +Bootstrap 响应式的花店/花卉装饰/花卉网上商店/婚礼花/花束商店购物网站
  6. 阜阳智慧城市建设居全国地市级城市第11位
  7. python 爬虫抓取网页数据导出excel_Python实现抓取网页生成Excel文件的方法示例
  8. 3. Spring Boot 从零开始学习
  9. x86 android armv7,说说Android项目中的armeabi,armeabi-v7a和x86
  10. java 中文车牌识别_EasyPR-Java开源中文车牌识别系统工程部署