当前位置: 首页 > news >正文

安全的赣州网站建设做网站公司 深圳信科

安全的赣州网站建设,做网站公司 深圳信科,网站伪静态设置,网站源码后台目录 一、项目背景 1.1 需求 1.2 设备 1.3 解决方案 二、WebViewUpgrade 接入 2.1 支持版本 2.2 接入 2.2.1 导入项目(我使用的是这个) 2.2.2 implementation 2.3 使用 2.4 WebView 相关推荐 一、项目背景 1.1 需求 项目需要使用WebView加载合作方公司的Url(里面功…目录 一、项目背景 1.1 需求 1.2 设备 1.3 解决方案 二、WebViewUpgrade 接入 2.1 支持版本 2.2 接入 2.2.1 导入项目(我使用的是这个) 2.2.2 implementation 2.3 使用 2.4 WebView 相关推荐 一、项目背景 1.1 需求 项目需要使用WebView加载合作方公司的Url(里面功能比较多) 使用了ES6(ECMAScript 6.0以下简称 ES6是 JavaScript 语言的下一代标准已经在 2015 年 6 月正式发布了所以也被叫作ES2015) JavaScript 使用的函数要求 chrome 最低版本是85。 一系列原因导致WebView加载该链接报错合作方那边因为某些原因不想改变现有的代码实现等。需要我们自行解决那就开整呗。 1.2 设备 Android 8.1 WebView 版本 60.xxxx.xxxx.xx好吧忘记版本了页面打不开) Android 8.1 WebView 版本 61.0.3163.98(页面打不开) Android 11  WebView 版本 83.0.4103.120视频无法播放厂商给的答复是不支持具体原因没说 查看版本号 可以进入设置-开发者模式-Webview实现可以看到 Webview 内核版本号。 adb 命令 adb shell pm dump com.android.webview|grep version adb shell pm dump com.android.webview|grep versionversionCode410412053 minSdk21 targetSdk30versionName83.0.4103.120signaturesPackageSignatures{48d4530 version:3, signatures:[63b96fc5], past signatures:[]} 1.3 解决方案 1.腾讯X5内核还是加载失败以为是集成错误。特意使用微信打开该链接也是加载失败。 2.更新安装包因为内嵌WebView的是com.android.webview。 2.1 下载了包名为 95.0.4638.50-463805003_minAPI21版本的包进行覆盖安装-报错提示签名文件不一致。 2.2 下载com.android.google.weview_95.0.4638.74_APKPure安装成功了加载还是报错。而且在WebView实现-不可选择com.android.google.webview。 3.修改framework-res.apk中配置允许WebView实现选择com.android.google.webview。这种操作不太合适2C需要root权限修改系统文件一不留神就可能产生其他问题。 4.使用 WebViewUpgrade这个还是比较强大的对WebView内核进行升级。已解决低版本无法加载url、视频无法播放的问题。 二、WebViewUpgrade 接入 WebViewUpgrade的创建者遇到的问题华为机上因为WebView内核的Chromium版本低于107无法播放H265视频的情况为了解决上述问题可以用JS实现H265播放但是会比较卡就想不能让WebView用应用内的APK作为内核。 2.1 支持版本 com.google.android.webview122.0.6261.64 com.android.webview113.0.5672.136 com.huawei.webview14.0.0.331 com.android.chrome122.0.6261.43 com.amazon.webview.chromium118-5993-tv.5993.155.51 当然你也可以找到其他版本下载安装即可。例如 com.android.webview我觉得113版本太高那么你可以下载一个95版本的。或者你不想使用com.android.webview 改用com.google.android.webview也是可以的。 2.2 接入 2.2.1 导入项目(我使用的是这个) 将Demo的core和download-source模块直接导入到自己项目修改core中 implementation androidx.appcompat:appcompat:1.6.1的版本。 2.2.2 implementation implementation io.github.jonanorman.android.webviewup:core:0.1.0// 不需要下载APK时使用 implementation io.github.jonanorman.android.webviewup:download-source:0.1.0// 需要下载APK使用如果是低版本可能会报错。core中 implementation androidx.appcompat:appcompat:1.6.1的版本比较高需要兼容的SDK版本也比较高。 解决方案 1.提高项目 SDK 版本。 2.使用exclude。 以上两种方式都可以。 2.3 使用 设置 private void setWebView(){UpgradeInfo upgradeInfo  new UpgradeInfo(com.android.webview,113.0.5672.136,https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.android.webview_113.0.5672.13_armeabi-v7a.zip,网络);String  systemWebViewPackageName  WebViewUpgrade.getSystemWebViewPackageName();if (systemWebViewPackageName ! null systemWebViewPackageName.equals(upgradeInfo.packageName) VersionUtils.compareVersion( WebViewUpgrade.getSystemWebViewPackageVersion(),upgradeInfo.versionName)  0) {//Toast.makeText(getApplicationContext(), system webView is larger than the one to be upgraded, so there is no need to upgrade, Toast.LENGTH_LONG).show();return;}UpgradeSource upgradeSource  upgradeInfo.toUpgradeSource(RobotApplication.getInstance());if (upgradeSource  null) {return;}WebViewUpgrade.upgrade(upgradeSource);updateUpgradeWebViewStatus();} } 这里我使用的是网络下载: 包名com.android.webview; 版本号113.0.5672.136 下载内核地址https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.android.webview_113.0.5672.13_armeabi-v7a.zip //更新状态private void updateUpgradeWebViewStatus() {if (WebViewUpgrade.isProcessing()) {LogUtils.e(WebVIewUpgrade,Upgrading...);} else if (WebViewUpgrade.isFailed()) {LogUtils.e(WebVIewUpgrade,Fail...);} else if (WebViewUpgrade.isCompleted()) {LogUtils.e(WebVIewUpgrade,complete...);}int process  (int) (WebViewUpgrade.getUpgradeProcess() * 100);LogUtils.e(WebVIewUpgrade,Processing:-----process  %);Throwable throwable  WebViewUpgrade.getUpgradeError();if (throwable ! null) {LogUtils.e(WebVIewUpgrade,Throwable.message:  throwable.getMessage()  \nstackTrace:  Log.getStackTraceString(throwable));}} public class UpgradeInfo {public String title;public String url;public String packageName;public String versionName;public String extraInfo;public UpgradeInfo(String packageName, String versionName, String url, String extraInfo) {this.title  packageName  \n  versionName;this.extraInfo  !TextUtils.isEmpty(extraInfo) ? extraInfo : ;if (!extraInfo.isEmpty()) {this.title  this.title  \n  extraInfo;}this.url  url;this.packageName  packageName;this.versionName  versionName;}public UpgradeInfo(String packageName, String versionName, String url) {this(packageName, versionName, url, );}Nullablepublic UpgradeSource toUpgradeSource(Context context) {UpgradeSource upgradeSource  null;if (this.extraInfo.equals(网络)) {upgradeSource  new UpgradeDownloadSource(context,this.url,new File(context.getFilesDir(), this.packageName  /  this.versionName  .apk));} else if (this.extraInfo.equals(内置)) {upgradeSource  new UpgradeAssetSource(context,this.url,new File(context.getFilesDir(), this.packageName  /  this.versionName  .apk));} else if (this.extraInfo.equals(安装包)) {upgradeSource  new UpgradePackageSource(context,this.packageName);}return upgradeSource;} public class MainActivity extends BaseActivity implements , UpgradeCallback {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setWebView();}private void setWebView(){......}//更新中Overridepublic void onUpgradeProcess(float percent) {updateUpgradeWebViewStatus();}//更新完成Overridepublic void onUpgradeComplete() {updateUpgradeWebViewStatus();}//更新失败Overridepublic void onUpgradeError(Throwable throwable) {updateUpgradeWebViewStatus();} } 注意这个代码尽量前置如果无法前置需要保证其他地方先不要对WebView进行操作。如果操作了会导致初始化失败。 可以先试用Demo尝试功能是否可用再集成到自己的项目中。 2.4 WebView 执行完上面的操作后你就正常操作WebView即可。上面我只是列举了网上下载的例子(第一次下载只要文件存在无需重复下载)还支持内置/安装包的形式我这是应用包体太大不适合内置。 这种方式是可行的但是也有一些小的前置条件需要注意如果无法前置会导致使用失败。怎么前置才能做到万无一失就需要根据实际情况来判断了。 相关推荐 Android System WebView 各版本下载地址(翻)https://www.apkmirror.com/apk/google-inc/android-system-webview/WebView java.lang.NoSuchMethodException:callDrawGLFunction-CSDN博客文章浏览阅读5.7k次。5.1系统上WebView初始化报错Caused by: java.lang.NoSuchMethodException: callDrawGLFunction [long]at java.lang.Class.getMethod(Class.java:664)at java.lang.Class.getMethod(Class.java:643)at com.android.webview.chromium.WebViewDelegateFactory$Api21CompatibilityDele_java.lang.nosuchmethodexception: android.view.displaylistcanvas.calldrawglfuhttps://shuaici.blog.csdn.net/article/details/78459486
http://www.hkea.cn/news/14454007/

相关文章:

  • 网站如何加后台临沂市建设工程多图联审系统 网站
  • 培训人员网站建设网站如何做排名
  • 代理网站在线怀化市住房和城乡建设局网站
  • 宝安公司网站建设比较好的商业策划书
  • 宁波网站建设 华企立方凡科 建设淘宝客网站
  • dz网站建设教程上海做网站哪家好
  • 校园门户网站系统建设网站平均停留时间
  • it类网站河北省最大的网页设计公司
  • 网站宣传页面做家教网站要多少钱
  • 邢台网站设计哪家专业曲靖网站微信建设
  • 郑志平爱站网创始人诸城网站建设葛小燕
  • 苏州网站建设凡科wordpress添加文章
  • 英文都不懂 学网站建设维护难吗一凡招聘 建筑人才网
  • 段友做的看电影网站合肥专业网站设计公司价格
  • 品牌网站建设堅持大蝌蚪开发一个网站要多久
  • 厦门市建设局网站咨询电话门户网站和微网站的区别
  • 软件开发培训去哪报名做移动网站优化首
  • 建设一个连接的网站wordpress销售主题
  • 服装网站html模板招聘网站上还要另外做简历吗
  • 微网站app制作实木餐桌椅网站建设公司
  • 沈阳网站建设那家好云南省城乡住房建设厅网站
  • 青岛物流公司网站建设连云港优化推广
  • 做seo时网站更新的目的专业做公墓 陵园的网站
  • 抚顺网站网站建设浦江县建设局网站
  • 佛山网页网站制作高柏企业管理咨询有限公司
  • 抖音平台建站工具北京网站定制建设
  • 录像网站怎么做ppt模板包含哪些内容
  • 广州网站制作开发公司设计网站可能遇到的问题
  • 国内建网站公司深圳兼职做网站
  • 做网赌需要在哪些网站投广告网站开发职业生涯规划范文