首页 > 其他分享 >mPaaS H5 容器知识清单 | FAQ · 第一期

mPaaS H5 容器知识清单 | FAQ · 第一期

时间:2022-10-07 20:04:26浏览次数:47  
标签:容器 错误 自定义 FAQ H5 mPaaS H5ErrorPageView

mPaaS 离线包是什么?

Hybrid 开发模式已不是什么新鲜的话题,不仅可以快速发布新业务,同时无需考虑 App 发版时间,为业务更新迭代提供了极强的灵活性。相比于 Web 开发,Hybrid 开发模式提供了丰富的设备 API,让业务形态可以更加多元和丰富。

mPaaS 离线包源自于支付宝原生方案,经历了严苛的业务考验,让你直接和支付宝使用同一套框架层代码,拥有统一容器及内核,相对系统内核获取更低 Crash 率和 ANR 率,适配性强,并具备良好的、弹性的扩展能力,结合具体业务需求定制 JSAPI。

它解决什么问题?

  • 减少白屏
  • 解决 Hybrid App 跨平台兼容与适配
  • 提升 Hybrid App 性能
  • 原生开发下的包大小优化

下面开始 mPaaS H5 容器知识清单 · FAQ 第一期

问题1、HTML5 容器加载时,如果加载错误仅回调 H5_PAGE_FINISHED,并没有回调 H5_PAGE_ERROR。如何处理 H5_PAGE_ERROR,用原生的错误展示界面。

答: H5_PAGE_ERROR 事件是容器内部事件,会被内部插件拦截,目前开发者无法直接使用。 可以实现 H5ErrorPageView,在 errorPageCallback 启动原生页面。

Step1: 新建一个 HTML 格式的自定义错误页

<!doctype html>
<html lang="zh-cn">

<head>
<meta charset="utf-8"
<meta name="viewport" content="width=device-width,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"
<meta name="format-detection" content="telephone=no"
<title>自定义错误</title>
</head>

<body>
<p>这个页面是一个自定义错误页</p>
</body>

</html>

Step2: 实现 H5ErrorPageView。将刚才创建的错误页,设置给 APWebView

public class H5ErrorPageViewImpl implements H5ErrorPageView{
@Override
public boolean enableShowErrorPage(){
// true 表示启动自定义错误页
return true;
}
@Override
public void errorPageCallback(H5Page h5Page, APWebView view, String errorUrl, int{
// 获取错误页的 html,demo 中放到了 raw 中,也可以放在其他地方
String html = H5ResourceManager.readRawFromResource(R.raw.custom_error, LauncherApplicationAgent.getInstance().getApplicationContext().getResources());
// 将错误页设置给 webview
view.loadDataWithBaseURL(errorUrl, html, "text/html", "utf-8", errorUrl);
}
}

Step3: 注册 H5ErrorPageView。在打开 H5 容器之前,将自定义的 H5ErrorPageView 注册给容器。

H5Utils.setProvider(H5ErrorPageView.class.getName(),new

具体请参考:​​tech.antfin.com/docs/2/1269…​

问题2:自定义 JSAPI 调取摄像头拍完照后,插件不能继承 H5Acitivity,无法写 onActivityResult 回调

答: 目前您可以使用一个透明 activity 来启动相机,并接收返回参数,然后再通过广播(或其他手段通知您的 JSAPI) 由于我们在 H5Activity 中做了不少的工作,所以暂时不能开发继承 H5Activity,不过这是一个非常好的 issue,后续我们看是否可以开发一些 H5Activity 的回调来解决这个问题。

问题3:Android 如何不预置 H5 的情况下,直接下载离线包?

答:上传离线包到 mPaaS MDS 发布服务,使用 MPNebula.startApp 方法即可。

补充:目前 H5 容器没有使用 MPnebula.startApp(),而是直接用的内嵌形式的。如何解决?

h5Page = h5Service.createPage(this, bundle);
h5Page.getPluginManager().register(new NativeLoadingPlugin());
FrameLayout.LayoutParams lp = new

答:MPNebula.updateAll


标签:容器,错误,自定义,FAQ,H5,mPaaS,H5ErrorPageView
From: https://blog.51cto.com/mpaas/5734935

相关文章

  • 22-FAQ登录RabbitMQ控制台提示不是私密连接
    登录RabbitMQ控制台提示不是私密连接将启动的时候的赋权操作再执行一遍rabbitmqctladd_userrootrabbitmqctlset_permissions-p/root".*"".*"".*"rabbitmqct......
  • H50087:a标签 跳转空 a标签刷新当前页面
    1,<liclass="remove_frame"style="display:n"><ahref="javascript:void(0);"onclick="spanClick(this)"title="刷新模型"></a></li> 2,a标签刷新当前页面<ahre......
  • 0641-5.16.1-如何禁用CDH5.16.1的Kerberos
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 0805-CDH5中的Parquet迁移至CDP中兼容性验证
    文档编写目的因为CDH5中的Parquet版本为1.5,而CDP7中的Parquet版本为1.10,我们在从CDH5升级到CDP7后,无论是原地升级还是迁移升级,都可能会碰到一个问题,以前在CDH5中使用Hive/Im......
  • h5:vue3 + ts + vite + vuex + axios + vant4 + scss + postcss+mockjs+element-plus
    模板地址:https://gitee.com/zhang_meng_lei/mobile-template-h5-vue3/tree/master安装element-plus:yarnaddelement-plus(目前已导入但未实现代码)按需导入:https://el......
  • 多功能手持VH501TC采集仪如何连接传感器与读数
    河北稳控科技多功能手持VH501TC采集仪如何连接传感器与读数  传感器连接与读数振弦与温度传感器振弦传感器和温度传感器(NTC)均为无源传感,不需要连接电源线。根据前述“......
  • 多功能手持VH501TC采集仪如何处理监测数据
    河北稳控科技多功能手持VH501TC采集仪如何处理监测数据1.保存数据在实时数据显示窗口,长按【存储】按键即可保存当前显示的传感数据,当听到蜂鸣器提示后表示存储完成,同时屏......
  • 520813 - FAQ: BAPIs for goods
    SymptomThisnotecontainsfrequentlyaskedquestions/answersregarding'BAPIsforgoodsmovements'.Questions1.WherecanIfindthedocumentationforcallingth......
  • h5页面在ios手机输入框内emoji表情长度判断
    1、需求:要写一个讨论区的h5页面,当然包含了输入框并且输入框限制字符数30个,测试发现在ios手机输入emoji表情后输入框内就会超出所限制的字符长度,(说白了就是只要输入表......
  • 关于手机端H5通知已读未读的一个简单demo
    情景:系统发通知给每一个员工,每个员工有一个系统系统,点击提示,通知列表有已读和未读主要通过redis来实现,大致思路:将通知和员工绑定作为key,如果员工点进链接证明已读则将key......