-
Notifications
You must be signed in to change notification settings - Fork 28
基于原生WebView的开店SDK切换到X5版本注意事项
zhaohengyu edited this page Sep 7, 2018
·
2 revisions
basic版本基于系统原生WebView提供服务,在兼容性与性能上相对较差,尤其是在视频播放方面。所以我们提供了集成x5内核版本的开店SDK。X5内核详细信息见X5官方文档。在兼容性,安全性,性能等方面有很大的提升。
- 替换依赖的库 由
compile 'com.youzanyun.open.mobile:basic:最新版本'
替换为
compile 'com.youzanyun.open.mobile:x5sdk:最新版本'
注意:如果接入方项目中已经依赖了X5内核,可以选择不依赖sdk中的x5库,接入方式修改为
compile 'com.youzanyun.open.mobile:x5sdk:最新版本',{
exclude module: 'x5official'
}
- 因为x5内核有64位问题,所以需要特殊兼容。我们已经在sdk中提供了相关的兼容处理,但是需要接入方在app的module下配置一下ndk,具体如下
android {
...
defaultConfig {
...
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
...
}
...
}
- x5内核版本新增了相关混淆,所以需要更新混淆规则。混淆规则
- 替换布局文件
将原来的<com.youzan.androidsdk.basic.YouzanBrowser>替换为<com.youzan.androidsdkx5.YouzanBrowser>
- 因为X5内核使用的WebView与原生的WebView导入包的路径不同,所以需要重新导包。同时注意:x5的使用的WebView相关的类与原生的WebView使用的相关类的包路径也是一致的,所以要同时修改。具体信息见X5官方接入文档。不要使用类似的如下代码:
import android.*;
import android.webkit.*;
import android.webkit.WebStorage.*;
import android.net.*;
import android.net.http.*;
替换为X5的路径
-
权限信息更新。具体见权限信息
-
如果有播放视频的需求,需要特殊配置。兼容视频播放:
1)享受页面视频的完整播放体验需要做如下声明:
页面的Activity需要声明android:configChanges="orientation|screenSize|keyboardHidden"
2)视频为了避免闪屏和透明问题,需要如下设置
a)网页中的视频,上屏幕的时候,可能出现闪烁的情况,需要如下设置:Activity在onCreate时需要设置:
getWindow().setFormat(PixelFormat.TRANSLUCENT);(这个对宿主没什么影响,建议声明)
b)在非硬绘手机和声明需要controller的网页上,视频切换全屏和全屏切换回页面内会出现视频窗口透明问题,需要如下设置
声明当前<item name="android:windowIsTranslucent">false为不透明。
特别说明:这个视各app情况所需,不强制需求,如果声明了,对体验更有利
c)以下接口禁止(直接或反射)调用,避免视频画面无法显示:
webview.setLayerType()
webview.setDrawingCacheEnabled(true);