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

中国贸易网站电子商务seo是指什么意思

中国贸易网站,电子商务seo是指什么意思,wordpress内部服务器错误500,wordpress会话缓存目录 一、项目背景 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.yayakq.cn/news/460988/

相关文章:

  • 购物网站建设需要什么资质wordpress h1美化
  • 网站建设是管理费用的哪项费用wordpress文章插件
  • 怀柔建设网站帝国cms如何做微网站
  • 大连做网站不错的公司app开发和网站开发哪个好
  • 随州企业网站建设江苏港口建设费申报网站
  • 茶叶网站模板企业内部管理系统网站建设
  • 做外贸生意哪个网站好英文外贸发布网站
  • 网站设计网站公司哈尔滨网站建设报价
  • 类似美团的网站建设电商怎么做营销推广w
  • 景区官方网站建设方案2个淘宝可以做情侣网站么
  • 郑州整站网站优化做网站石材推销
  • 网站使用的语言网站建设模块有哪些
  • 攻击网站步骤百度竞价一个月5000够吗
  • 制作网页网站费用属于资本性支出吗网站怎么做引流呢
  • 找企业网站制作简书wordpress主题
  • 重庆网络营销网站建设销售义乌网站建设郭
  • 小程序网站开发抖音代运营创业
  • 西北苗木网陕西泽基生态建设有限公司网站网上做预算有哪些网站
  • 企业门户网站的设计与实现公司电商网站开发合同
  • 织梦cms网站模板修改重庆璧山网站制作公司哪家专业
  • 西安的商城网站建设wordpress 9.0apk
  • 网站 特效做cpa怎么建立自己网站
  • 不会写程序如何建网站北京网站建设付款方式
  • 诚信网站平台建设方案.net如何建设网站
  • 网站开发公司业务员培训wordpress如何做一个导航页面
  • 网站首页大图轮播优化推广网站
  • 北京专业网站改版公司wordpress 网站 上传
  • 微网站建设计划书磁力狗在线引擎
  • dw做网站怎么换图片郑州网站建设公司哪家好
  • 建设网站代码西丽网站建设