mPaaS H5 容器知識清單 | FAQ · 第三期

FAQ 第三期.png

mPaaS 離線包是什麼?

Hybrid 開發模式已不是什麼新鮮的話題,不只能夠快速發佈新業務,同時無需考慮 App 發版時間,爲業務更新迭代提供了極強的靈活性。相比於 Web 開發,Hybrid 開發模式提供了豐富的設備 API,讓業務形態能夠更加多元和豐富。java

mPaaS 離線包源自於支付寶原生方案,經歷了嚴苛的業務考驗,讓你直接和支付寶使用同一套框架層代碼,擁有統一容器及內核,相對系統內核獲取更低 Crash 率和 ANR 率,適配性強,並具有良好的、彈性的擴展能力,結合具體業務需求定製 JSAPI。android

它解決什麼問題?

  • 減小白屏
  • 解決 Hybrid App 跨平臺兼容與適配
  • 提高 Hybrid App 性能
  • 原生開發下的包大小優化

問題 1:原生 Webview 能夠隨着手機轉成橫屏而顯示橫屏,但 UCWebview 好像默認就是豎屏,如何設置成橫屏顯示?git

答:在你的 manifest 中加入以下代碼便可:github

<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小程序

具體報錯信息:app

java.io.IOException: Unable to delete file: D:***\Desktop\mPass\mpaas-demo\mpaas-demo\mpaas_nebula_demo\mpaas_nebula_demo_android\app\build\intermediates\transforms\stripDebugSymbol\debug\0\lib\armeabi\libandroid-phone-thirdparty-utdid.so框架

Unable to delete file: D:***\Desktop\mPass\mpaas-demo\mpaas-demo\mpaas_nebula_demo\mpaas_nebula_demo_android\app\build\intermediates\transforms\stripDebugSymbol\debug\0\lib\armeabi\libandroid-phone-thirdparty-utdid.soasync

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'則不報該問題,可見更新新版本便可解決。gradle

問題 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": "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
相關文章
相關標籤/搜索