H5 容器打开 URL 出现“加载失败”的问题

问题描述

App 打开在线链接出现重定向,随后会出现“加载失败”的提示。

问题排查

可能由于第三方的 Scheme 在手机上没有对应的 App,导致打开 URL 的时候客户端出现错误信息:ERR_UNKNOWN_URL_SCHEME。排查的过程如下:

  1. 过滤日志。在 Android Studio 控制台的日志信息中过滤关键字 onReceived。查看日志中是否有 ERR_UNKNOWN_URL_SCHEME 信息。
    过滤日志
  2. 若日志中不包含 ERR_UNKNOWN_URL_SCHEME,请进行 工单协助。若日志中包含 ERR_UNKNOWN_URL_SCHEME,则需按下面的操作步骤实现 public interface H5SchemeInterceptProvider,在 handlerOnScheme 中自行处理网页端的 Scheme 请求即可解决该问题。
    1. H5SchemeInterceptProvider 的实现类中创建 handlerOnScheme 方法处理网页端的 Scheme。
      1. public class H5SchemeInterceptProviderImpl implements H5SchemeInterceptProvider {
      2. @Override
      3. //请在如下方法里面自行处理scheme的跳转
      4. public boolean handlerOnScheme(String s, H5Page h5Page) {
      5. //返回true表示拦截不走scheme,false表示不拦截
      6. return true;
      7. }
      8. }
    2. 在 mPaaS 初始化完成以后设置 Provider。
      1. // mPaaS 初始化回调设置。
      2. QuinoxlessFramework.setup(this, new IInitCallback() {
      3. @Override
      4. public void onPostInit() {
      5. // 此回调表示 mPaaS 已经初始化完成,mPaaS 相关调用可在这个回调里进行。
      6. H5Utils.setProvider(H5SchemeInterceptProvider.class.getName(), new H5SchemeInterceptProviderImpl());
      7. }
      8. });

工单协助

如果依然不能解决该问题,请准备好相关问题的复现 Demo 工程,通过阿里云 工单系统 联系 mPaaS 售后技术支持。