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

问题描述

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

问题排查

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

  1. 过滤日志。在 Android Studio 控制台的日志信息中过滤关键字 onReceived。查看日志中是否有 ERR_UNKNOWN_URL_SCHEME 信息。

  2. 若日志中不包含 ERR_UNKNOWN_URL_SCHEME,请加入钉钉答疑群 41708565 咨询。若日志中包含 ERR_UNKNOWN_URL_SCHEME,则需按下面的操作步骤实现 public interface H5SchemeInterceptProvider,在 handlerOnScheme 中处理网页端的 Scheme 请求即可解决该问题。

    1. H5SchemeInterceptProvider 的实现类中创建 handlerOnScheme 方法处理网页端的 Scheme。

      public class H5SchemeInterceptProviderImpl implements H5SchemeInterceptProvider {
      @Override
      //请在如下方法里面处理scheme的跳转
      public boolean handlerOnScheme(String s, H5Page h5Page) {
      //返回true表示拦截不走scheme,false表示不拦截
       return true;
      }
      }
    2. 在 mPaaS 初始化完成以后设置 Provider。

      MP.init(this,
              MPInitParam.obtain().setCallback(new MPInitParam.MPCallback() {
                  @Override
                  public void onInit() {
                     // This callback indicates that mPaaS has been initialized, and mPaaS related calls can be made in this callback.        
                      H5Utils.setProvider(H5SchemeInterceptProvider.class.getName(), new H5SchemeInterceptProviderImpl());     
                  }
              })
      );

      详情请参考:初始化 mPaaS

如果依然不能解决该问题,请准备好相关问题的复现 Demo 工程,加入钉钉答疑群 41708565 咨询。