"

188金宝搏亚洲手机版拥有全球最顶尖的原生APP,每天为您提供千场精彩体育赛事,188金宝搏亚洲手机版更有真人、彩票、电子老虎机、真人电子竞技游戏等多种娱乐方式选择,188金宝搏亚洲手机版让您尽享娱乐、赛事投注等,且无后顾之忧!

"

支付寶小程序:Client SDK

小編:啊南 303閱讀 2020.12.28

初始化

初始化可以直接修改 Application:

public class MainApplication extends AromeApplication {r    @Overrider    protected void attachBaseContext(Context context) {r        super.attachBaseContext(context);r        MultiDex.install(this);r    }r}

也可以自行選擇時機調用

  1. 設置 application context:

AromeInit.attachApplicationContext(context);
  1. 服務初始化(后續 API 調用依賴于服務初始化完成,如果不提前初始化,則會在第一次 API 調用的時候進行初始化):

// 默認配置初始化rAromeInit.init();rr// 使用對應初始化參數rBundle themeConfig = new Bundle();rthemeConfig.putString("mode", "portrait");rthemeConfig.putString(InitOptionParams.THEME_CONFIG_BG_COLOR, "#FFFF00");rAromeInit.init(new AromeInitOptions.Builder()r                        .loginMode(1)r                        .hardwareType(0)r                        .hardwareName("AlipayCar")r               ttt.themeConfig(themeConfig)r                        .build());rr// 使用對應初始化參數,并需要完成回調rAromeInit.init(new AromeInitOptions.Builder()r                        .loginMode(1)r                        .hardwareType(0)r                        .hardwareName("AlipayCar")r               ttt.themeConfig(themeConfig)r                        .build(),r                new AromeInit.Callback() {r                    @Overrider                    public void postInit() {rttttttLog.d(TAG, "i am on mainthread");r                    }r                    r                    @Overrider                    public void serverDied() {r                        Log.d(TAG, "server process died! need re activate!");r                    }r                });
InitOptions 說明
  • loginMode

    • 0 手動登入登出

    • 1 懸浮球頭像露出,用戶可登出

    • 2 懸浮球倒計時露出,超時無操作自動登出

  • hardwareType

    • 1 小鵬汽車(車機豎屏小程序窗口)

    • 1001 天貓精靈(橫屏小程序窗口)

  • hardwareName

    • 硬件名稱,通過 getSystemInfo 的 device 字段透出,區別開移動端的 app 字段。讓開發者有能力從硬件維度做適配兼容。

  • themeConfig

    • 主題參數配置,bundle類型,支持傳參如下

參數名稱

類型

作用

mode

String

設置主題模式,區分橫屏/豎屏?蛇x值:"portrait"/"landscape"

可選值說明:"portrait":豎屏模式,用于豎屏硬件設備的主題模式

"landscape":橫屏模式,用于橫屏硬件設備的主題模式默認值為空,不會匹配任何主題模式,只顯示小程序主體配置示例代碼

themeConfig.putString("mode", "portrait");

InitOptionParams.THEME_CONFIG_BG_COLOR

String,16進制色值,如#FFFF00

面板主色A,見橫屏模式圖示

InitOptionParams.THEME_CONFIG_PANEL_BG_COLOR

String,16進制色值,如#FFFF00

面板輔色B,見橫屏模式圖示

InitOptionParams.THEME_CONFIG_TITLE_COLOR

String,16進制色值,如#FFFF00

標題色A,見橫屏模式圖示

InitOptionParams.THEME_CONFIG_SUB_TITLE_COLOR

String,16進制色值,如#FFFF00

輔助色C,見橫屏模式圖示

InitOptionParams.THEME_CONFIG_ACCENT_TITLE_COLOR

String,16進制色值,如#FFFF00

強調色B,見橫屏模式圖示

  • themeConfig 圖示

    • 橫屏模式

      image.pngimage.png

    • 豎屏模式

      image.png

API 說明

建議:API 不要在主線程調用,否則可能在服務未初始化完成前拋出異常。

如果必須要在主線程調用,務必保證調用前檢查 AromeInit.isServiceOnline 返回 true。

1.1 激活
AromeActivateRequest request = new AromeActivateRequest();rrequest.hostAppId = "hostAppId#123";rrequest.productId = "productId#213";rrequest.deviceId = "deviceTest#2344";rrequest.signature = "signature#1r2334";rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeActivateResponse>() {r    @Overrider    public void onCallback(final AromeActivateResponse response) {r        mHandler.post(new Runnable() {r            @Overrider            public void run() {r                responseTextView.setText(response.toString());r            }r        });r    }r});

請求參數:

參數

說明

productId

產品 ID

deviceId

設備 ID

signature

簽名文件

hostAppId

移動應用 appid

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

錯誤碼說明:

2001

服務端激活失敗

2.1 登錄
AromeLoginRequest request = new AromeLoginRequest();rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeLoginResponse>() {r    @Overrider    public void onCallback(final AromeLoginResponse response) {r        mHandler.post(new Runnable() {r            @Overrider            public void run() {r                responseTextView.setText(response.toString());r            }r        });r    }r});

請求參數:暫無

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

2.2 登出
AromeLogoutRequest request = new AromeLogoutRequest();rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeLogoutResponse>() {r    @Overrider    public void onCallback(final AromeLogoutResponse response) {r        mHandler.post(new Runnable() {r            @Overrider            public void run() {r                responseTextView.setText(response.toString());r            }r        });r    }r});

請求參數:暫無

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

3.1 啟動代碼示例
AromeLaunchAppRequest request = new AromeLaunchAppRequest();rrequest.appId = miniAppId.getText().toString();rrequest.page = miniAppPage.getText().toString();rrequest.query = miniAppQuery.getText().toString();rBundle themeConfig = new Bundle();rthemeConfig.putInt(RequestParams.REQUEST_KEY_SHOW_TYPE, 123);rthemeConfig.putBoolean(RequestParams.REQUEST_KEY_SAVE_TO_RECENT, false);rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeLaunchAppResponse>() {r    @Overrider    public void onCallback(final AromeLaunchAppResponse response) {r        mHandler.post(new Runnable() {r            @Overrider            public void run() {r                responseTextView.setText(response.toString());r            }r        });r    }r});
請求參數

參數名稱

類型

作用

appId

String

要啟動的小程序appId(必選)

page

String

指定小程序頁面(可選)

query

String

指定小程序query參數(可選)

launchWidth

int

小程序主體顯示寬度(可選)

themeConfig

Bundle

主題配置參數(配合initOptions初始化時的themeConfig,具體子參數見下方參數定義)

closeAllApp

boolean

啟動前是否關閉所有正在運行的小程序,默認false不關閉(可選)

themeConfig參數

參數名稱

類型

作用

showType

int

  • 橫屏模式,默認值 123

123:左中右三屏顯示,包含最近列表+小程序主體+運營頁

12:左+中,包含最近列表+小程序主體

23:中+右,包含小程序主體+運營頁

2:中,只顯示小程序主體

  • 豎屏模式,默認值 21

12:左+中,包含最近列表+小程序主體21:中+左, 包含小程序主體+最近列表

saveToRecent

boolean

launchApp啟動的小程序是否保存到“最近使用”,默認值 true 保存到最近使用列表

themeConfig 效果圖示
  • 橫屏模式

showType=123

image.png

showType=23

image.png

showType=12

image.png

showType=2

image.png

  • 豎屏模式

showType=12

image.png

showType=21

image.png

結果參數

參數

說明

success

true / false

code

狀態碼

message

狀態信息

3.2 退出
AromeExitAppRequest request = new AromeExitAppRequest();rrequest.appId = miniAppId.getText().toString();rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeExitAppResponse>() {r    @Overrider    public void onCallback(final AromeExitAppResponse response) {r        mHandler.post(new Runnable() {r            @Overrider            public void run() {r                responseTextView.setText(response.toString());r            }r        });r    }r});

請求參數:

參數

說明

appId

小程序 appid

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

錯誤碼說明:

1050

未找到運行中的小程序

3.3 預加載
AromePreloadAppRequest request = new AromePreloadAppRequest();rrequest.appId = miniAppId.getText().toString();rrequest.loadToMemory = false;rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromePreloadAppResponse>() {r    @Overrider    public void onCallback(final AromePreloadAppResponse response) {r        mHandler.post(new Runnable() {r            @Overrider            public void run() {r                responseTextView.setText(response.toString());r            }r        });r    }r});

請求參數:

參數

說明

appId

小程序 appid

loadToMemory

是否加載到內存

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

錯誤碼說明:

1060

未找到小程序信息,無法預加載

3.4 批量預加載
Set<String> appIdSet = new HashSet();r// 填充 appIdSetrAromeBatchPreloadAppRequest request = new AromeBatchPreloadAppRequest();rrequest.appIds = appIdSet;rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromePreloadAppResponse>() {r    @Overrider    public void onCallback(final AromePreloadAppResponse response) {r        mMainHandler.post(new Runnable() {r            @Overrider            public void run() {r                mResponseTextView.setText(response.toString());r            }r        });r    }r});

請求參數:

參數

說明

appIds

包含所有預加載的小程序AppId Set,最多10個

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

錯誤碼說明:

2

appIds內size為0,或者大于10?

3.5 小程序運行狀態
AromeGetAppStatusRequest request = new AromeGetAppStatusRequest();rrequest.appId = miniAppId.getText().toString();rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeGetAppStatusResponse>() {r    @Overrider    public void onCallback(final AromeGetAppStatusResponse response) { r        mMainHandler.post(new Runnable() {r            @Override r            public void run() { r                responseTextView.setText(response.toString()); r            }r        }); r    }r});

請求參數:

參數

說明

appId

小程序 appid

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

isRunning

小程序是否正在運行 true/false

isForeground

小程序是否在前臺 true/false

3.6 獲取用戶登錄信息
AromeGetUserInfoRequest request = new AromeGetUserInfoRequest();rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeGetUserInfoResponse>() {r    @Overrider    public void onCallback(final AromeGetUserInfoResponse response) {r        mMainHandler.post(new Runnable() {r            @Overrider            public void run() {r                mResponseTextView.setText(response.toString());r            }r        });r    }r});

請求參數:

參數

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息,包含 isLogin, userName, userAvatar等信息

硬件能力擴展

允許小程序調用第三方 app 提供的硬件能力,如小程序播放車機提供的音樂能力;或設備發送通知給到小程序,如車機通知小程序當前電(油)量低。

1.1 注冊能力

通過AromeExtendBridgeRequest注冊需要擴展的能力。

請求參數:

參數

說明

extensionList

能力擴展列表

結果參數:

參數

說明

success

true / false

code

狀態碼

message

狀態信息

例(擴展了 helloAmpe 和 playMusic 兩個 API):

AromeExtendBridgeRequest request = new AromeExtendBridgeRequest();rArrayList<String> extensionList = new ArrayList<>();rextensionList.add("helloAmpe");rextensionList.add("playMusic");rrequest.mExtensionList = extensionList;rAromeServiceInvoker.invoke(request, new AromeServiceTask.Callback<AromeResponse>() {r    @Overrider    public void onCallback(final AromeResponse response) {r        mMainHandler.post(new Runnable() {r            @Overrider            public void run() {r                mResponseTextView.setText(response.toString());r            }r        });r    }r});
1.2 實現能力

實現注冊的能力,當小程序調用對應能力時,會回調onCalled方法,并攜帶action即對應 API 名稱與params即對應調用參數,只需要完成對應的擴展能力,并通過bridgeCallback參數回調即可,如果不需要額外參數回調給小程序可以直接傳入null。

AromeServiceInvoker.registerBridgeExtension(new AromeServiceInvoker.BridgeExtension() {r    @Overrider    public void onCalled(String action, String params, AromeServiceInvoker.BridgeCallback bridgeCallback) {r        JSONObject result = new JSONObject();r        try {r            result.put("action", action);r            result.put("params", params);r            result.put("hello", "world");r        } catch (Throwable t) {r            Log.e("test", "onCalled", t);r        }r        String jsonString = result.toString();r        bridgeCallback.callback(jsonString);r    }r});
2.1 發送事件
AromeSendEventRequest sendEventRequest = new AromeSendEventRequest();rsendEventRequest.eventName = "niceToMeetYou";rsendEventRequest.eventData = "{"phonetype":"ABC","cat":"Android"}";rAromeServiceInvoker.invoke(sendEventRequest, new AromeServiceTask.Callback<AromeResponse>() {r    @Overrider    public void onCallback(final AromeResponse response) {r        mMainHandler.post(new Runnable() {r            @Overrider            public void run() {r                mResponseTextView.setText(response.toString());r            }r        });r    }r});
3.1 小程序調用能力

需要在注冊實現的 API 名稱前增加 "ampe_",來調用到真正實現的能力(如上例中的 helloAmpe ):

my.call('ampe_helloAmpe', {}, res => {r  console.log("result", res);r});
3.2 小程序監聽事件
my.on('niceToMeetYou', e => {r  console.log("event", e);r})
通用狀態碼

碼值

說明

0

成功

1

本地調用異常

2

本地校驗失敗

1000

遠程調用異常

1001

invokeToken 失效,需要重新激活

1002

調用者身份非法

1003

參數非法

1004

處理超時(30s)

關聯標簽:
188金宝搏亚洲手机版 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>