Skip to content

基于原生WebView的开店SDK切换到X5版本注意事项

zhaohengyu edited this page Sep 7, 2018 · 2 revisions

综述

basic版本基于系统原生WebView提供服务,在兼容性与性能上相对较差,尤其是在视频播放方面。所以我们提供了集成x5内核版本的开店SDK。X5内核详细信息见X5官方文档。在兼容性,安全性,性能等方面有很大的提升。

切换版本的步骤

  1. 替换依赖的库 由
compile 'com.youzanyun.open.mobile:basic:最新版本'

替换为

compile 'com.youzanyun.open.mobile:x5sdk:最新版本'

注意:如果接入方项目中已经依赖了X5内核,可以选择不依赖sdk中的x5库,接入方式修改为

compile 'com.youzanyun.open.mobile:x5sdk:最新版本',{
    exclude module: 'x5official'
}
  1. 因为x5内核有64位问题,所以需要特殊兼容。我们已经在sdk中提供了相关的兼容处理,但是需要接入方在app的module下配置一下ndk,具体如下
android {
    ...
    defaultConfig {
        ...
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
        ...
    }
    
    ...
}
  1. x5内核版本新增了相关混淆,所以需要更新混淆规则。混淆规则
  2. 替换布局文件

将原来的<com.youzan.androidsdk.basic.YouzanBrowser>替换为<com.youzan.androidsdkx5.YouzanBrowser>

  1. 因为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. 权限信息更新。具体见权限信息

  2. 如果有播放视频的需求,需要特殊配置。兼容视频播放:

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);