当前位置: 首页 > 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(里面功能比较多):

  1. 使用了ES6(ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了(所以也被叫作ES2015))

  2. 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(视频无法播放,厂商给的答复是不支持,具体原因没说)

查看版本号:

  1. 可以进入设置-开发者模式-Webview实现可以看到 Webview 内核版本号。

  2. adb 命令: adb shell pm dump com.android.webview|grep version

adb shell pm dump com.android.webview|grep versionversionCode=410412053 minSdk=21 targetSdk=30versionName=83.0.4103.120signatures=PackageSignatures{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.webview:122.0.6261.64

  • com.android.webview:113.0.5672.136

  • com.huawei.webview:14.0.0.331

  • com.android.chrome:122.0.6261.43

  • com.amazon.webview.chromium:118-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 各版本下载地址(翻)icon-default.png?t=N7T8https://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.15wanjia.com/news/173240.html

相关文章:

  • 专业建站提供商注册过哪些网站
  • 新安县做网站校园公共设施设计ppt
  • 做网站赚钱的点在哪里网站建设 php 企业网站
  • 网站建设方案书 icp备案盐城微网站建设
  • 北京进入紧急状态福州关键词排名优化
  • 商品展示介绍网站源码哈尔滨网站建设多少钱
  • 制作网站副本php 网站 模板
  • wordpress做企业网站wordpress演示站教程
  • 网站 开发 文档陵水网站建设
  • 网站模板购买 优帮云建设摩托车是名牌吗
  • 快速做自适应网站wordpress rss教程
  • 网站留言板html模板亚洲影视传媒有限公司
  • 河北住房和城乡建设厅网站网站运营
  • 自建网站怎么关闭宁夏网站建设联系电话
  • 湛江做网站的网站闸北建设机械网站
  • 手机如何做微电影网站保险网站模板
  • 在深圳市住房和建设局网站小软件公司一年能挣多少钱
  • 网站设计怎么边加载变查看运营商大数据精准营销获客
  • 网站备案失效廊坊app开发
  • 外汇网站怎么做优化短网址生成器免费
  • 建设网站找什么问题互联网公司的招聘要求
  • 谷歌网站收录提交lnmp中安装wordpress
  • seo网站推广服务重庆模板建站软件
  • 郑州网站改版升级无锡手机网站
  • 网站建设那家好wordpress菜单页面顺序
  • 网站跳出率怎么计算做网站的域名是做什么用的
  • 建设网站平台需要的设备网站维护价格
  • 网站接入lnmp和wordpress
  • 电子商务网站设计代码钓鱼网页在线生成网站
  • 静态wordpress电影网站怎么做优化