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

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

FAQ 第三期.png

mPaaS 离线包是什么?

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

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

它解决什么问题?

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

问题 1:原生 Webview 可以随着手机转成横屏而显示横屏,但 UCWebview 好像默认就是竖屏,如何设置成横屏显示?

答:在你的 manifest 中加入如下代码即可:

<activity
            android:name="com.alipay.mobile.nebulacore.ui.H5Activity"
            android:configChanges="orientation|keyboardHidden|navigation|screenSize|smallestScreenSize|screenLayout"
            android:exported="false"
            android:hardwareAccelerated="true"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

问题 2:Window 下载 Demo 运行出错:java.io.IOException: Unable to delete file

具体报错信息:

java.io.IOException: Unable to delete file: D:*DesktopmPassmpaas-demompaas-demompaas_nebula_demompaas_nebula_demo_androidappbuildintermediatestransformsstripDebugSymboldebug0libarmeabilibandroid-phone-thirdparty-utdid.so

Unable to delete file: D:*DesktopmPassmpaas-demompaas-demompaas_nebula_demompaas_nebula_demo_androidappbuildintermediatestransformsstripDebugSymboldebug0libarmeabilibandroid-phone-thirdparty-utdid.so

64326518-b3fe3380-cffc-11e9-9e47-9e3f171c4299.png

出错版本:classpath 'com.alipay.android:android-gradle-plugin:3.0.0.7.25'
修改为classpath 'com.alipay.android:android-gradle-plugin:3.0.0.8.0'则不报该问题,可见更新新版本即可解决。

答:出错版本:classpath 'com.alipay.android:android-gradle-plugin:3.0.0.7.25'
修改为classpath 'com.alipay.android:android-gradle-plugin:3.0.0.8.0'则不报该问题,可见更新新版本即可解决。

问题 3:如何获得小程序的VC,自定义转场等

  • 小程序版本: 10.1.60

目前仅发现如下方式直接打开小程序, 是否有更灵活的方式操作小程序的容器 VC

[MPNebulaAdapterInterface startTinyAppWithId:appId params:dic];

使用以下方式打开Demo中小程序的内置离线包,会一直报错底部的错误

NSString *appId = @"2017072607907880";
UIViewController *vc =
[[MPNebulaAdapterInterface shareInstance] createH5ViewControllerWithNebulaApp:@{
                                                                                @"appId": appId,
                                                                                @"chInfo" : @"MPPortal_home"
                                                                                }];
[self.navigationController pushViewController:vc animated:YES];

[mPaaSTinyApp] H5_JSC_Execute_Error:{

logStr = "ReferenceError: Can't find variable: window{n "line": 1,n "column": 10,n "sourceURL": "https://error.alipay.com/"n}";
}

答:
上述 createH5ViewControllerWithNebulaApp 目前暂不支持基于小程序创建vc,下个版本会修复。
您可以使用以下方法,基于小程序创建一个 viewcontroller

[[NBServiceGet() appCenter] prepareApp:@"2017072607907880" version:nil process:^(NAMAppPrepareStep step, id info) {
} finish:^(NAMApp *app, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
UIViewController *vc = [H5Service createWebViewController:@{@"appId": app.app_id,@"version":app.version} JSApis:nil withDelegate:nil];
[self.navigationController pushViewController:vc animated:YES];
});
}];

问题 4:Android有可以给容器所在activity设置透明主题或者透明背景的方法吗?

答:在你的 manifest 中加入如下代码即可:

<activity
            android:name="com.alipay.mobile.nebulacore.ui.H5Activity"   
android:configChanges="orientation|keyboardHidden|navigation|screenSize|smallestScreenSize|screenLayout"
            android:theme="你的theme"
            android:exported="false"
            android:hardwareAccelerated="true"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

目前 mPaaS H5 容器 Demo 源码已发布,欢迎 Star 我们从而进一步了解特性和亮点。

mPaaS 钉钉群引流.png

目录
相关文章
|
28天前
|
移动开发 前端开发 Android开发
mPaaS 常见问题之移动开发平台 mpaas的H5 前端 Kylin 框架引入vant后包特别大如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
33 0
|
4月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
56 2
|
28天前
|
移动开发 安全 小程序
mpaas常见问题之小程序容器,跑起来后一直提示 "网络不给力, 请稍后再试"如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
19 0
|
移动开发 weex 容器
《手机淘宝H5和Weex容器的构建实践》电子版地址
手机淘宝H5和Weex容器的构建实践
93 0
《手机淘宝H5和Weex容器的构建实践》电子版地址
|
移动开发 开发框架 JavaScript
mPaas-H5容器与离线包介绍
mPaaS移动开发框架提供了一套完整的混合应用(Hybrid)开发解决方案,包括客户端的H5容器组件和服务端的离线包发布管理平台。 H5 Web应用的特点是开发效率高,但受制于Web技术和HTTP协议的限制,在移动端的表现差强人意。Native应用的优势在于性能,但是动态更新的能力较弱。Hybrid方案的出现正是为了调和这两者矛盾并发挥两者的优势,其核心技术能力包括:H5离线技术和JSBridge技术。简单来说,H5离线技术就是将HTML/CSS/JS和资源文件等打包提前下发到App中,使得App在加载H5应用时可以直接从本地读取资源文件,避免了大量的网络资源请求,从而提高H5应用的加载效率;
969 0
mPaas-H5容器与离线包介绍
|
移动开发 编解码 缓存
mPaas H5离线包优化指南
在移动互联网时代的今天,市场上绝大多数终端App都在使用H5展示页面,且随着终端技术迭代更新和市场多变性,H5页面在App中的占比越来越重要。同时也暴露出一个所有App的共性问题,即性能优化。同样的H5页面的性能优化也是重点问题。 在mPaaS团队中虽然已将H5页面资源等打包做离线包了,但在复杂的客户环境、开发环境、市场环境下,客户端的H5离线包仍有性能优化问题,这里整理简单了集团下对H5离线包的优化策略方案,以供参考。
2474 0
mPaas H5离线包优化指南
|
移动开发 JSON 前端开发
mPaaS H5选图预览到上传怎么做
在金融性质的App里,选择本地相册图片或者拍照,然后预览并且上传是一个典型的使用场景,比如常见的身份证信息上传。在最近接触的几家银行客户里,都反馈有类似的场景,并且在使用上都或多或少的遇到一些问题,最后找到我们,希望我们提供一些最佳实践。在这里分享下对应场景的一些优化解决方案。
221 0
mPaaS H5选图预览到上传怎么做
|
移动开发 JSON 前端开发
mPaaS最佳实践之《H5选图预览到上传》
在金融性质的App里,选择本地相册图片或者拍照,然后预览并且上传是一个典型的使用场景,比如常见的身份证信息上传。在最近接触的几家银行客户里,都反馈有类似的场景,并且在使用上都或多或少的遇到一些问题,最后找到我们,希望我们提供一些最佳实践。在这里分享下对应场景的一些优化解决方案。
527 0
|
28天前
|
移动开发 监控 小程序
mPaaS常见问题之音视频通话微信小程序通话界面录制为画中画模式如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
26 0
|
2月前
|
缓存 小程序 Android开发
mPaaS问题之更改包名之后就进不了小程序如何解决
mPaaS小程序是阿里巴巴移动平台服务(mPaaS)推出的一种轻量级应用解决方案,旨在帮助开发者快速构建跨平台的小程序应用;本合集将聚焦mPaaS小程序的开发流程、技术架构和最佳实践,以及如何解决开发中遇到的问题,从而助力开发者高效打造和维护小程序应用。
63 1