android x5内核使用方法,android 快速教你集成腾讯X5内核
前言:本来android 自4.0之后已经优化了内核,改用了了chrome内核,兼容了大部分网页,这不第三方使用了一个直播,强烈要求使用腾讯X5的内核,说是兼容更好一点,既然这样,我就集成试试,下面教你快速集成:
image.png
然后导入:
image.png
image.png
这个官方demo都有,放在自己的项目下,然后再BaseApplication里面初始化一下:
image.png
附上代码:
private void initX5Web() {
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
MyLog.d("x5WebApp", " onViewInitFinished is " + arg0);
}
@Override
public void onCoreInitFinished() {
}
};
//x5内核初始化接口
QbSdk.initX5Environment(getApplicationContext(), cb);
}
然后写个webview继承腾讯X5的webview,记得千万别倒错包哦!
代码如下:
package com.hsz88.zbx.x5webview;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import com.hsz88.zbx.base.BaseApplication;
import com.hsz88.zbx.constant.StaticConfig;
import com.hsz88.zbx.webview.DefaultJsObject;
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;
/**
Author: KuenCheung
Time: 2018/12/4
Description:
*/
public class X5WebView extends WebView {
private WebViewClient client = new WebViewClient() {
// 防止加载网页时调起系统浏览器
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
};
public X5WebView(Context arg0) {
super(arg0);
setBackgroundColor(85621);
}
@SuppressLint("SetJavaScriptEnabled")
@Deprecated
public X5WebView(Context arg0, AttributeSet arg1) {
super(arg0, arg1);
this.setWebViewClient(client);
// this.setWebChromeClient(chromeClient);
// WebStorage webStorage = WebStorage.getInstance();
initWebViewSettings();
this.getView().setClickable(true);
}
@SuppressLint("SetJavaScriptEnabled")
@Deprecated
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);
//设置默认的JS Object
addJavascriptInterface(new DefaultJsObject(BaseApplication.mContext), StaticConfig.JS_OBJECT);
}
}
然后,在自己的xml俩面进行使用,具体方法和webview一样,如下:
android:id="@+id/default_web"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white" />
其他操作和webview一样.
android x5内核使用方法,android 快速教你集成腾讯X5内核相关推荐
- Android 项目集成腾讯X5浏览器内核
1.为什么要集成腾讯 X5 浏览器内核 肯定是事出有因,简单来说,JS代码写的不标准,与部分机型内嵌套的浏览器内核产生矛盾,出现底层(os)bug导致,不得不费事搞一个其它内核进行加载网页,具体原因. ...
- Android集成腾讯X5浏览器内核库
Android集成腾讯X5浏览器内核库 一.相关配置 1. 相关地址 2.引入SDK 3. AndroidManifest配置 二.Application中初始化内核 三.代码实现 1. 自定义带Pr ...
- android颜色值的表示方法android:background=#FFFFFFFF的意思
android颜色值的表示方法 android:background="#FFFFFFFF"的意思 Android中的颜色值是通过红(Red).绿(Green).蓝(Blue)三原 ...
- android的反调试方法,Android平台融合多特征的APP反调试方法与流程
本发明涉及Android平台融合多特征的APP反调试方法,属于计算机与信息科学技术领域. 背景技术: 应用程序本身并不具备反调试的功能,但是动态调试是动态分析应用逻辑.动态脱壳等攻击方式所采取的必要手 ...
- android 开启子线程方法,android中开启子线程
AndroidRuntime(673): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/ ...
- android中的add方法,Android中Fragment怎么addView?
慕勒3428872 Fragment是Android honeycomb 3.0新增的概念,在Android--Fragment介绍.AndroidFragment使用.Android Fragmen ...
- android 矢量图片使用方法,Android中的矢量图
概述 VectorDrawable是通过XML文件中的一系列点,线和曲线及其相关颜色信息定义的. 使用VectorDrawable的主要优点是图像可扩展性. 它可以缩放而不损耗显示质量,这意味着相同的 ...
- android 设置全屏方法,Android中设置全屏的方法
在开发中,我们经常需要把我们的应用设置为全屏,这里有两种方式: 一是在代码中设置; 二是在配置文件中设置 一. 在代码中设置 public class BaseActivity extends Act ...
- Android解析xml的方法,Android中解析XML格式数据的方法
XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...
- android toolbar的使用方法,Android中Toolbar的基本使用
Android的标题栏是很重要的一个模块,App是否易用很大一部分要看标题栏.写这个博客的时候刚发现谷歌推出了一种新的标题栏实现方式. 它相对于以前的ActionBar来说,最大的变化是开发者可以在标 ...
最新文章
- 泛型推断类型不符合上限
- Thrift架构~thrift中间语言的认识(只有它什么都不是,它才有可能什么都是)
- 为什么倒排索引不采用zlib这样的字典压缩算法——因为没法直接使用啊
- Linux. C语言中else,if else用法详解,C语言if else用法完全攻略
- 17、Flask实战第17天:Flask-cookie
- Oracle USE_LARGE_PAGES初始化参数
- 英特尔的新方向:称王集成计算设备领域
- 线性查找与二分查找的平均查找次数的比较
- 【机器人】大四本科生发明 自动写作论文的机器人
- 网页被劫持了该怎么办?dns被劫持如何修复?网页劫持介绍
- 爬取股票收盘价,计算神奇九转
- ios开发——实用技术篇Block/KVO/通知/代理
- Apache apollo 配置说明及用户名和密码管理
- Spring MVC各组件近距离接触--下下--05
- 蚂蚁借呗每月等额计算方式
- 如何使用按图搜索(拍立淘)获取商品数据
- Github星标90K?京东架构师一篇讲明白百亿级并发系统架构设计
- 计算机保研夏令营预推免面试经验(吉林大学+哈工大威海+北京理工医工融合
- Excel用vba自动生成word
- 【深度学习人类语言处理】3 语音转换——类别(特征分解、直接转换)、语音分离(评价指标、深度聚类、PIT、TaskNet)