qq浏览文件服务器,腾讯浏览服务
1. 基础配置
1.1 SDK接入
jar包方式集成
您可将官网下载的jar包复制到您的App的libs目录,并且通过Add As Library的方式集成TBS SDK
Gradle方式集成
您可以在使用SDK的模块的dependencies中添加引用进行集成: api 'com.tencent.tbs.tbssdk:sdk:43939'
1.2 权限配置
为了保障内核的动态下发和正常使用,您需要在您的AndroidManifest.xml增加如下权限:
1.3 混淆配置
为了保障X5功能的正常使用,您需要在您的proguard.cfg文件中添加如下配置:
-dontwarn dalvik.**
-dontwarn com.tencent.smtt.**
-keep class com.tencent.smtt.** {
*;
}
-keep class com.tencent.tbs.** {
*;
}
1.4 异常上报配置
为了提高合作方的webview场景稳定性,及时发现并解决x5相关问题,当客户端发生crash等异常情况并上报给服务器时请务必带上x5内核相关信息。x5内核异常信息获取接口为:com.tencent.smtt.sdk.WebView.getCrashExtraMessage(context)。以bugly日志上报为例:
UserStrategy strategy = new UserStrategy(appContext);
strategy.setCrashHandleCallback(new CrashReport.CrashHandleCallback() {
public Map onCrashHandleStart(
int crashType,
String errorType,
String errorMessage,
String errorStack) {
LinkedHashMap map = new LinkedHashMap();
String x5CrashInfo = com.tencent.smtt.sdk.WebView.getCrashExtraMessage(appContext);
map.put("x5crashInfo", x5CrashInfo);
return map;
}
@Override
public byte[] onCrashHandleStart2GetExtraDatas(
int crashType,
String errorType,
String errorMessage,
String errorStack) {
try {
return "Extra data.".getBytes("UTF-8");
} catch (Exception e) {
return null;
}
}
});
CrashReport.initCrashReport(appContext, APPID, true, strategy);
1.5 首次初始化冷启动优化
TBS内核首次使用和加载时,ART虚拟机会将Dex文件转为Oat,该过程由系统底层触发且耗时较长,很容易引起anr问题,解决方法是使用TBS的 ”dex2oat优化方案“。
(1). 设置开启优化方案
// 在调用TBS初始化、创建WebView之前进行如下配置
HashMap map = new HashMap();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);
map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, true);
QbSdk.initTbsSettings(map);
(2). 增加Service声明
在AndroidManifest.xml中增加内核首次加载时优化Service声明。
该Service仅在TBS内核首次Dex加载时触发并执行dex2oat任务,任务完成后自动结束。
android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
android:label="dexopt"
android:process=":dexopt" >
2. WebView接入
2.1 包名替换
下载 SDK jar 包放到工程的libs目录下,将源码和XML里的系统包和类替换为SDK里的包和类,具体对应如下:
系统内核
SDK内核
android.webkit.ConsoleMessage
com.tencent.smtt.export.external.interfaces.ConsoleMessage
android.webkit.CacheManager
com.tencent.smtt.sdk.CacheManager(deprecated)
android.webkit.CookieManager
com.tencent.smtt.sdk.CookieManager
android.webkit.CookieSyncManager
com.tencent.smtt.sdk.CookieSyncManager
android.webkit.CustomViewCallback
com.tencent.smtt.export.external.interfaces.IX5WebChromeClient.CustomViewCallback
android.webkit.DownloadListener
com.tencent.smtt.sdk.DownloadListener
android.webkit.GeolocationPermissions
com.tencent.smtt.export.external.interfaces.GeolocationPermissionsCallback
android.webkit.HttpAuthHandler
com.tencent.smtt.export.external.interfaces.HttpAuthHandler
android.webkit.JsPromptResult
com.tencent.smtt.export.external.interfaces.JsPromptResult
android.webkit.JsResult
com.tencent.smtt.export.external.interfaces.JsResult
android.webkit.SslErrorHandler
com.tencent.smtt.export.external.interfaces.SslErrorHandler
android.webkit.ValueCallback
com.tencent.smtt.sdk.ValueCallback
android.webkit.WebBackForwardList
com.tencent.smtt.sdk.WebBackForwardList
android.webkit.WebChromeClient
com.tencent.smtt.sdk.WebChromeClient
android.webkit.WebHistoryItem
com.tencent.smtt.sdk.WebHistoryItem
android.webkit.WebIconDatabase
com.tencent.smtt.sdk.WebIconDatabase
android.webkit.WebResourceResponse
com.tencent.smtt.export.external.interfaces.WebResourceResponse
android.webkit.WebSettings
com.tencent.smtt.sdk.WebSettings
android.webkit.WebSettings.LayoutAlgorithm
com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm
android.webkit.WebStorage
com.tencent.smtt.sdk.WebStorage
android.webkit.WebView
com.tencent.smtt.sdk.WebView
android.webkit.WebViewClient
com.tencent.smtt.sdk.WebViewClient
需要注意的是:
1)请不要在代码里使用下述写法:
import android.*;
import android.webkit.*;
import android.webkit.WebStorage.*;
import android.net.*;
import android.net.http.*;
2)除了源码里需要把相关的包名和类名进行替换,布局xml里的声明也需要替换,例如:
android:id="@+id/forum_context"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp" />
请确保将所有的相关class的包名均按照上述规则替换,以免造成类型强转crash、cookie 设置失败等问题发生。
Tips:您可使用工具进行批量扫描和替换,将脚本放置于根目录并执行脚本即可。下载地址:
3 文件接入
3.1 支持格式
TBS已提供9种主流文件格式的本地打开,如果您需要使用更高级的能力请使用QQ浏览器打开文件
接入TBS可支持打开文件格式:doc、docx、ppt、pptx、xls、xlsx、pdf、txt、epub
调用QQ浏览器可打开:rar(包含加密格式)、zip(包含加密格式)、tar、bz2、gz、7z(包含加密格式)、doc、docx、ppt、pptx、xls、xlsx、txt、pdf、epub、chm、html/htm、xml、mht、url、ini、log、bat、php、js、lrc、jpg、jpeg、png、gif、bmp、tiff 、webp、mp3、m4a、aac、amr、wav、ogg、mid、ra、wma、mpga、ape、flac
3.2 接口介绍
public static int openFileReader(
Context context,
String filePath,
HashMap extraParams,
ValueCallback callback
)
(1)此方法在Qbsdk类下
(2)调用之后,优先调起 QQ 浏览器打开文件。如果没有安装 QQ 浏览器,在 X5 内核下调起简版 QB 打开文 件。如果使用的系统内核,则调起文件阅读器弹框。
(3)暂时只支持本地文件打开
context: 调起 miniqb 的 Activity 的 context。此参数只能是 activity 类型的 context,不能设置为 Application 的 context。
filePath: 文件路径。格式为 android 本地存储路径格式,例如:/sdcard/Download/xxx.doc. 不支持 file:/// 格式。暂不支持在线文件。
extraParams: miniqb 的扩展功能。为非必填项,若无需特殊配置,默认可传入null。扩展功能参考“文件功能定制”
ValueCallback: 提供 miniqb 打开/关闭时给调用方回调通知,以便应用层做相应处理,您可以在出现以下回调时结束您的进程,节约内存占用。主要回调值如下:
filepath error
TbsReaderDialogClosed
default browser
fileReaderClosed
返回值:
1:用 QQ 浏览器打开
2:用 MiniQB 打开
3:调起阅读器弹框
-1:filePath 为空 打开失败
public static void closeFileReader(Context context)
主动关闭文件打开ui,并清理相应内存占用。
3.3 接入示例
HashMap params = new HashMap();
params.put("style", "1");
params.put("local", "true");
params.put("memuData", jsondata);
QbSdk.openFileReader(ctx,”/sdcard/xxx.doc”, params,callback);
qq浏览文件服务器,腾讯浏览服务相关推荐
- 腾讯html5平台,腾讯浏览服务
2. 浏览增强 传统系统内核(Webview)存在适配成本高.不安全.不稳定.耗流量.速度慢.视频播放差.文件能力差等问题,这是移动应用开发商在进行Hybrid App开发时普遍面临的难题.腾讯浏览服 ...
- Android使用腾讯浏览服务X5内核
[前期准备] 腾讯X5 jar包下载地址 [点击打开] 本次完整DEMO源码 [打开Github] [集成步骤] 第一步:下载jar包添加到项目 第二步:添加权限 [java] view plainc ...
- 腾讯浏览服务X5内核集成
腾讯浏览服务X5内核集成 导读 1.什么是X5内核? 2.需求场景 3.开始搬砖 4.优化 5.集成后的问题 6.补充 一.什么是X5内核? 用官方文档的话说,就是解决系统webview兼容性差.加载 ...
- Android Studio 使用腾讯浏览服务(替换掉系统自带的WebView)
一.为何不直接使用内置的WebView组件? 用Android自带的WebView组件,做过一些较复杂应用的人应该都会发现,这个自带的组件很多时候真是让人无力吐嘈,主要理由有二: Android中的W ...
- TBS腾讯浏览服务接入以及遇到的坑
序言 腾讯浏览服务功能强大,稳定,集成还算是比较简单的,比原生的webview强.最主要的是可以浏览PDF,Word文档,方便不少.此篇文章主要不是在讲集成,虽然集成的篇幅多些,但是我写的最重要的目的 ...
- TencentTbs腾讯浏览服务 x5内核使用
Tencent TBS (下简称TBS) 腾讯浏览服务 What is it? 百度百科解释: 腾讯浏览服务(Tencent Browsing Service,以下简称TBS),由腾讯X5浏览服务升级 ...
- Android应用内展示office文件--腾讯浏览服务(TBS)
前一篇写了用webview加载预览office文件,但是没有成功,所以只能另寻办法,上网查到了TBS(腾讯浏览服务),完美的解决了android端预览offic文件: 什么是TBS 依托 X5 内核 ...
- 浏览文件服务器,浏览文件服务器
浏览文件服务器 内容精选 换一换 假如您有一个Web应用,由于业务量比较大,需要使用两个弹性云服务器(简称ECS)进行业务负载分担.共享型负载均衡,可以将访问流量根据流量分配策略分发到后端多台服务器, ...
- oo 浏览文件服务器,文件服务器的配置.docx
实验报告 时间:2011 929 实验人:张岩 试验名称:文件服务器的配置 试验环境:VMWARE 环境描述:一台2008域服务器和一台域环境的个人PC,还有一台不加域环境的文件服务器. 实现口标:为 ...
- qq位置如何用启动百度地图定位服务器,腾讯位置服务API快速入门
前言 之前项目有个需求,在网页上显示微信发送过来的位置信息,该开始想用百度地图,后来发现腾讯地图相对简单一点 快速入门 申请Key 引入js 把###替换成你申请的key 定义容器 设置好宽高度 设置 ...
最新文章
- virus.win32.parite.H病毒的查杀方法
- 使用Filezilla Server配置FTP服务器
- python包导入细节_python循环导入是一个实现细节吗?
- jmeter---linux安装运行
- 数组转json去除首尾引号_诞生于JavaScript,json的前世今生
- mysql记录当前表数据的数据条数据类型_mysql的表的操作 数据类型
- Linux服务器中解压zip包
- Python自定义类的成员并不一直是所有对象共享的
- Linux 虚拟机安装 MySQL 教程
- python毕业设计总结范文大全_java毕业设计总结报告(精选范文3篇)
- 联想笔记本v110_联想V110系列笔记本如何设置u盘启动教程
- 软件首次亮相前超级账本技术升温
- Python办公自动化之PPT幻灯片自动化:使用Python制作PPT 操作PPT
- 中国园区经济行业“十四五“规划与前景深度研究报告2021年版
- 经济基础知识(初级)【5】
- ROS2 基础概念 参数
- 如何看计算机cpu的好坏,怎么看电脑的配置(如何判断cpu的好坏)
- mysql5.7.23绿色版安装
- SELECT后面有自定义函数的优化方法
- 吐槽达内这种培训机构的坑,鸡肋
热门文章
- JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回 out.print(ja);...
- 了解 PerformancePoint 仪表板设计器
- SQL 语句 - Select(2): 指定表中的字段
- 新手驾车操作指南[200P]
- C 语言 结构类型 结构
- POJ1177(扫描线求周长并)
- zjoi2018day1 游记
- Win7从VHD中启动 如何扩充虚拟磁盘
- 用有道ip地址查询接口的详细方法
- 【整理】牛客网编程题-前端篇(入门难度)