@cordova-plugin-agconnect/cloudfunctions
v1.2.0
Published
Cordova Plugin AGC Cloud Functions
Downloads
48
Maintainers
Readme
Cordova Plugin AGC Cloud Functions
Contents
- 1. Introduction
- 2. Installation Guide
- 3. API Reference
- 4. Configuration and Description
- 5. Sample Project
- 6. Licensing and Terms
1. Introduction
This plugin enables communication between Huawei Cloud Functions SDK and Cordova platform. It exposes all functionality provided by Huawei Cloud Functions SDK.
2. Installation Guide
Before you get started, you must register as a HUAWEI Developer and complete identity verification on the HUAWEI Developer website. For details, please refer to Register a HUAWEI ID.
2.1. Creating a Project in AppGallery Connect
Creating an app in AppGallery Connect is required in order to communicate with the Huawei services. To create an app, perform the following steps:
- Sign in to AppGallery Connect and select My projects.
- Select your project from the project list or create a new one by clicking the Add Project button.
- Go to Project settings > General information, and click Add app. If an app exists in the project and you need to add a new one, expand the app selection area on the top of the page and click Add app.
- On the Add app page, enter the app information, and click OK.
2.2. Obtaining agconnect-services.json and agconnect-services.plist
Sign in to AppGallery Connect and select your project from My Projects. Then go to Project settings > General information. In the App information field,
- If platform is Android, click agconnect-services.json button to download the configuration file.
- If platform is iOS, click agconnect-services.plist button to download the configuration file.
2.3. Applying for the Cloud Functions Service
Cloud Functions is still in Beta state. To use Cloud Functions, send an application email to [email protected] to apply for the service.
Set your email title in the following format: [Cloud Functions]-[Company name]-[Developer account ID]-[Project ID]. For details about how to query the developer account ID and project ID, please refer to Querying the Developer Account ID and Project ID.
Huawei operation personnel will reply within 1 to 3 working days.
This email address is used only to process AppGallery Connect service provisioning applications. Do not send other consultations to this email address.
2.4. Enabling Cloud Functions Service
In AppGallery Connect, find your project, and click the app for which you want to use cloud functions.
Select Build and Cloud functions on the left menu and click Enable Cloud Functions service.
2.5. Creating a Cloud Function
To create a cloud function, please refer Create a Function.
Creating a Trigger: To call a function in an app, you must create an HTTP trigger. For details, please refer to Create an HTTP Trigger. When calling a function in an app, you must transfer the identifier of an HTTP trigger. For details, please refer to Querying the Trigger Identifier
2.6. Cordova
Install Cordova CLI.
npm install -g cordova
Create a new Cordova project or use existing Cordova project.
- To create new Cordova project, you can use
cordova create path [id [name [config]]] [options]
command. For more details please follow CLI Reference - Apache Cordova.
- To create new Cordova project, you can use
Update the widget
id
property which is specified in theconfig.xml
file. It must be same with client > package_name value of theagconnect-services.json
andagconnect-services.plist
files.Add the Android or iOS platform to the project if haven't done before.
cordova platform add android
cordova platform add ios
Install
AGC Cloud Functions Cordova Plugin
to the project.
- Run the following command in the root directory of your project to install it through npm.
cordova plugin add @cordova-plugin-agconnect/cloudfunctions
2.6.1. iOS App Development
Add
agconnect-services.plist
file to the app's root directory of your Xcode project.Run the application.
cordova run ios --device
2.6.2. Android App Development
Copy
agconnect-services.json
file to<project_root>/platforms/android/app
directory your Android project.Run the application.
cordova run android --device
2.7. Ionic
Install Ionic CLI.
npm install -g @ionic/cli
Create a new Ionic project or use existing Ionic project.
- To create a new Ionic project, you can use
ionic start <name> <template> [options]
command. For more details please follow ionic start - Ionic Documentation.
- To create a new Ionic project, you can use
2.7.1. With Cordova Runtime
Enable the Cordova integration if haven't done before.
ionic integrations enable cordova
Update the widget
id
property which is specified in theconfig.xml
file. It must be same with client > package_name value of theagconnect-services.json
andagconnect-services.plist
files.Set preference in your Ionic project config.xml.
<!--platform iOS--> <preference name="deployment-target" value="11.0" /> <preference name="SwiftVersion" value="5" />
Add the Android or iOS platform to the project if haven't done before.
ionic cordova platform add android
ionic cordova platform add ios
Install
AGC Cloud Functions Cordova Plugin
to the project.ionic cordova plugin add @cordova-plugin-agconnect/cloudfunctions
Install
Ionic-Native AGC Cloud Functions
to the project.npm install @ionic-native/core @cordova-plugin-agconnect/ionic-native-agc-cloudfunctions
2.7.1.1 iOS App Development
Add
agconnect-services.plist
file to the app's root directory of your Xcode project.Run the application.
ionic cordova run ios --device
2.7.1.2. Android App Development
Copy
agconnect-services.json
file to<project_root>/platforms/android/app
directory your Android project.Run the application.
ionic cordova run android --device
3. API Reference
AGCCloudFunctions
Represents the cloud function processing class.
Public Method Summary
| Method | Return Type | Description |
| ------------------------------------------------------------- | ----------------- | ----------------- |
| call(triggerIdentifier: string, options?: AGCFunctionOptions) | Promise<string>
| Calls a function. |
Public Methods
call(triggerIdentifier: string, options?: AGCFunctionOptions)
Calls a function with input parameters.
Parameters
| Name | Type | Description | | ----------------- | ----------------------------------------- | ----------------------------------------------------------------- | | triggerIdentifier | string | NOPATHHTTP trigger identifier of the cloud function to be called. | | options? | AGCFunctionOptions | Cloud function configurations and parameters. |
Return Type
| Type | Description |
| ----------------- | ------------------------------------------------ |
| Promise<string>
| The return value after the function is executed. |
Call Example
const params1 = {
string: "test",
number: 12123,
boolean: true,
array: [1, 2, 3, 4, 5],
map: {
string: "text",
number: 123.1231,
boolean: true,
array: [1, 2, 3, 4, 5],
},
};
const options = {
timeout: 10,
timeUnit: AGCCloudFunctions.AGCTimeUnit.SECONDS,
params: params1,
};
AGCCloudFunctions.call("trigger-$latest", options)
.then((callFunctionWithParamResult) => {
alert(
"callFunctionWithParamResult: " +
JSON.stringify(callFunctionWithParamResult, null, 1)
);
})
.catch(function (err) {
alert("callFunctionWithParamResult -> Error : " + err);
});
Data Types
AGCFunctionOptions
- Cloud function configurations and parameters.
| Field | Type | Description | | -------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | timeout | number | Timeout interval of a function. For Android platform the unit is defined by the timeUnit parameter and the default time unit is seconds. For iOS platform time unit is seconds. | | timeUnit | AGCTimeUnit | Defines the time unit. Only Android platform. | | params | any | Custom any object that contains input parameter values of the function, which can be of any type. |
Constants
AGCTimeUnit
- Constants of time units.
| Value | Field | Type | Description | | ----- | ------------ | ------ | ------------- | | 0 | NANOSECONDS | number | Nanoseconds. | | 1 | MICROSECONDS | number | Microsecons. | | 2 | MILLISECONDS | number | Milliseconds. | | 3 | SECONDS | number | Seconds. | | 4 | MINUTES | number | Minutes. | | 5 | HOURS | number | Hours. | | 6 | DAYS | number | Days. |
4. Configuration and Description
Preparing for Release
Before building the APK, configure obfuscation scripts to prevent the AppGallery Connect SDK from being obfuscated. If obfuscation arises, the AppGallery Connect SDK may not function properly.
NOTE: This step is required only if you want to minify and obfuscate your app. By default obfuscation is disabled in Cordova and Ionic apps.
The obfuscation is done by ProGuard. By default, in Cordova and Ionic apps ProGuard is disabled. Even though ProGuard is not available, ProGuard support can be added through 3rd party ProGuard plugins. If ProGuard is enabled in your project, the Huawei Cordova App Messaging Plugin's ProGuard rules need to be added to your project. These rules are as follows:
-ignorewarnings
-keep class com.huawei.agconnect.**{*;}
-repackageclasses
5. Sample Project
You can find the sample projects on the Cross-platform > Cordova > Cloud Functions page.
6. Licensing and Terms
AGC Cloud Functions Cordova Plugin is licensed under the Apache 2.0 license.