将 MobileFirst Foundation SDK 添加到 Ionic 应用程序

improve this page | report issue


概述

在此教程中,了解如何将 MobileFirst SDK 添加到使用 Ionic CLI 创建的新的或现有的 Ionic 应用程序。您还可以了解如何配置 MobileFirst Server 以识别应用程序,以及查找有关在项目中更改的 MobileFirst 配置文件的信息。

MobileFirst Ionic SDK 作为一组 Typescript 包装程序以及 Cordova 插件提供,并在 NPM 上注册。

可用插件包括:

  • cordova-plugin-mfp - 核心 SDK 插件
  • cordova-plugin-mfp-push - 提供推送通知支持
  • cordova-plugin-mfp-jsonstore - 提供 JSONStore 支持

支持级别

MobileFirst 插件支持的 Ionic Cordova 平台版本包括:

  • cordova-ios:>= 4.1.1 以及 < 5.0
  • cordova-android:>= 6.1.2 以及 < 7.0
  • cordova-windows:>= 4.3.2 以及 < 6.0

跳转至:

Ionic SDK 组件

cordova-plugin-mfp

cordova-plugin-mfp 插件是针对 Cordova 的核心 MobileFirst 插件,并且此插件是必需的。如果安装任何其他 MobileFirst 插件,并且 cordova-plugin-mfp 插件尚未安装,那么也将自动安装此插件。

以下 Cordova 插件将作为 cordova-plugin-mfp 的依赖项进行安装:

  • cordova-plugin-device
  • cordova-plugin-dialogs
  • cordova-plugin-globalization
  • cordova-plugin-okhttp

cordova-plugin-mfp-jsonstore

cordova-plugin-mfp-jsonstore 插件使您的应用程序能够使用 JSONstore。有关 JSONstore 的更多信息,请参阅 JSONStore 教程

cordova-plugin-mfp-push

cordova-plugin-mfp-push 插件提供必需的许可权,以对 Android 应用程序使用来自 MobileFirst Server 的推送通知。必需其他设置以使用推送通知。 有关推送通知的更多信息,请参阅推送通知教程

cordova-plugin-mfp-fips

cordova-plugin-mfp-fips 插件为 Android 平台提供 FIPS 140-2 支持。有关更多信息,请参阅 FIPS 140-2 支持

cordova-plugin-mfp-encrypt-utils

cordova-plugin-mfp-encrypt-utils 插件为使用 iOS 平台的 Cordova 应用程序提供用于加密的 iOS OpenSSL 框架。有关更多信息,请参阅为 Cordova iOS 启用 OpenSSL

先决条件:

  • 安装在开发人员工作站上的 Ionic CLI 和 MobileFirst CLI。
  • MobileFirst Server 的本地或远程实例正在运行。
  • 阅读设置您的 MobileFirst 开发环境设置您的 Cordova 开发环境教程。
  • 对于 cordova-windows,必须安装与机器中已安装的 Visual Studio 和 .NET 版本兼容的 Visual C++ 版本。
  • 如果使用 Visual Studio Tools for Universal Windows Apps,请确保创建的 cordova-windows 应用程序具有所有必需的支持库。

添加 Mobile Foundation Ionic SDK

遵循下面的指示信息将 Mobile Foundation Ionic SDK 添加到新的或现有的 Ionic 项目,然后在 MobileFirst Server 中进行注册。

在您开始之前,确保 MobileFirst Server 正在运行。
如果使用本地安装的服务器,那么请从命令行窗口,浏览至服务器的文件夹,然后运行命令:./run.sh

添加 SDK

考虑使用 MobileFirst Ionic 应用程序模板创建项目。此模板会将必需的特定于 MobileFirst 的插件条目添加到 Ionic 项目的 config.xml 文件,并提供特定于 MobileFirst 并针对 MobileFirst 应用程序开发进行了调整的现成可用的 index.js 文件。

新建应用程序

  1. 创建 Ionic 项目:ionic start projectName starter-template
    例如:

    ionic start Hello blank
    
    • “Hello”是文件夹名称和应用程序名称。
    • “blank”是启动器模板的名称。

    模板化的 index.js 使您能够使用其他 MobileFirst 功能,如多语言应用程序翻译和初始化选项(请参阅用户文档以获取更多信息)。

  2. 将目录切换至 Ionic 项目的根目录:cd hello

  3. 使用 Ionic CLI 命令添加 MobileFirst 插件:ionic cordova plugin add cordova-plugin-name 例如:

    ionic cordova plugin add cordova-plugin-mfp
    

    上述命令会将 MobileFirst 核心 SDK 插件添加到 Ionic 项目。

  4. 使用 Ionic CLI 命令将一个或多个受支持的平台添加到 Cordova 项目:ionic cordova platform add ios|android|windows|browser。例如:

    cordova platform add ios
    
  5. 运行 ionic cordova prepare 命令来准备应用程序资源:

    ionic cordova prepare
    

现有应用程序

浏览至现有 Ionic 项目的根目录,然后添加 MobileFirst 核心 Ionic Cordova 插件:

   ionic cordova plugin add cordova-plugin-mfp

在装入 MobileFirst 客户机 SDK 之后,MobileFirst API 方法将可用。 然后将调用 mfjsloaded 事件。

注册应用程序

  1. 打开命令行窗口并浏览至 Ionic 项目的根目录。

  2. 向 MobileFirst Server 注册此应用程序:

    mfpdev app register
    
    • 如果使用的是远程服务器,请使用命令 mfpdev server add 进行添加。

mfpdev app register CLI 命令将先连接到 MobileFirst Server 以注册应用程序,然后使用标识 MobileFirst Server 的元数据更新 Ionic 项目根目录的 config.xml 文件。

会在 MobileFirst Server 中将每个平台注册为应用程序。

提示:您还可以从 MobileFirst Operations Console 注册应用程序:

  1. 装入 MobileFirst Operations Console。
  2. 单击应用程序旁边的新建按钮以注册新应用程序,并遵循屏幕上的指示信息。

使用 SDK

在装入 MobileFirst 客户机 SDK 之后,MobileFirst API 方法将可用。 然后将调用 mfjsloaded 事件。
只有在调用事件之后才会调用各种 MobileFirst API 方法。

更新 MobileFirst Ionic SDK

要使用最新发行版更新 MobileFirst Ionic Cordova SDK,请除去 cordova-plugin-mfp 插件:运行 ionic cordova plugin remove cordova-plugin-mfp 命令,然后运行 ionic cordova plugin add cordova-plugin-mfp 命令以重新添加。

可以在 SDK 的 NPM 存储库中找到 SDK 发行版。

已生成 MobileFirst Ionic SDK 工件

config.xml

Ionic 配置文件是包含应用程序元数据的必需 XML 文件,存储在应用程序的根目录中。
将 MobileFirst Ionic SDK 添加到项目之后,Ionic 生成的 config.xml 文件会接收一组使用名称空间 mfp: 标识的新元素。添加的元素包含与 MobileFirst 功能和 MobileFirst Server 相关的信息。

添加到 config.xml 文件的 MobileFirst 设置示例

<?xml version='1.0'encoding='utf-8'?>
<widget id="..." xmlns:mfp="http://www.ibm.com/mobilefirst/cordova-plugin-mfp">
    <mfp:android>
        <mfp:sdkChecksum>3563350808</mfp:sdkChecksum>
        <mfp:appChecksum>0</mfp:appChecksum>
        <mfp:security>
            <mfp:testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3" />
        </mfp:security>
    </mfp:android>
    <mfp:windows>
        <mfp:sdkChecksum>3563350808</mfp:sdkChecksum>
       <mfp:windows10>
          <mfp:sdkChecksum>...</mfp:sdkChecksum>          
          <mfp:security>
             <mfp:testWebResourcesChecksum/>
          </mfp:security>
    </mfp:windows>
    <mfp:platformVersion>8.0.0.00-20151214-1255</mfp:platformVersion>
    <mfp:clientCustomInit enabled="false" />
    <mfp:server runtime="mfp" url="http://10.0.0.1:9080" />
    <mfp:directUpdateAuthenticityPublicKey>the-key</mfp:directUpdateAuthenticityPublicKey>
    <mfp:languagePreferences>en</mfp:languagePreferences>
</widget>
元素 描述 配置
widget config.xml 文档的根元素。 此元素包含两个必需属性:
  • id:这是在创建 Cordova 项目时指定的应用程序包名称。 如果在向 MobileFirst Server 注册应用程序之后手动更改了此值,那么必须重新注册应用程序。
  • xmlns:mfp:MobileFirst 插件 XML 名称空间。
mfp:platformVersion 必需。 开发应用程序所用的产品版本。 缺省情况下已设置。 不得更改此值。
mfp:directUpdateAuthenticityPublicKey 可选。 在启用“直接更新真实性”功能时,将在部署期间对直接更新包进行数字签名。 在客户机下载包之后,将运行安全性检查以验证包真实性。 此字符串值是公用密钥,将用于认证直接更新 .zip 文件。 使用 mfpdev app config direct_update_authenticity_public_key key-value 命令设置。
mfp:languagePreferences 可选。 包含用于显示系统消息的语言环境的逗号分隔列表。 使用 mfpdev app config language_preferences key-value 命令设置。
mfp:clientCustomInit 控制如何调用 WL.Client.init 方法。 缺省情况下,将此值设置为 false,将在初始化 MobileFirst 插件之后自动调用 WL.Client.init 方法。 针对客户机代码将此值设置为 true,以显式控制调用 WL.Client.init 的时间。 手动编辑。 您可以将 enabled 属性值设置为 truefalse
mfp:server 缺省远程服务器连接信息,客户机应用程序将使用此信息与 MobileFirst Server 进行通信。
  • url:url 值指定缺省情况下客户机将用于连接到服务器的 MobileFirst Server 协议、主机和端口值。
  • runtime:运行时值指定应用程序注册到的 MobileFirst Server 运行时。 有关 MobileFirst 运行时的更多信息,请参阅 MobileFirst Server 概述。
  • 使用 the mfpdev app config server 命令设置服务器 url 值。
  • 使用 mfpdev app config runtime 命令设置服务器运行时值。
mfp:ios 此元素包含针对 iOS 平台的所有与 MobileFirst 相关的客户机应用程序配置。
  • mfp:appChecksum
  • mfp:sdkChecksum
  • mfp:security
mfp:android 此元素包含针对 Android 平台的所有与 MobileFirst 相关的客户机应用程序配置。
  • mfp:appChecksum
  • mfp:sdkChecksum
  • mfp:security
mfp:windows 此元素包含针对 Windows 平台的所有与 MobileFirst 相关的客户机应用程序配置。
  • mfp:appChecksum
  • mfp:windowsphone8
  • mfp:windows8
  • mfp:windows10
mfp:windows8 此元素包含针对 Windows 8.1 平台的所有与 MobileFirst 相关的客户机应用程序配置。
  • mfp:sdkChecksum
  • mfp:security
mfp:windows10 此元素包含针对 Windows 10 平台的所有与 MobileFirst 相关的客户机应用程序配置。
  • mfp:sdkChecksum
  • mfp:security
mfp:windowsphone8 此元素包含针对 Windows Phone 8.1 平台的所有与 MobileFirst 相关的客户机应用程序配置。
  • mfp:sdkChecksum
  • mfp:security
mfp:appChecksum 此值是应用程序 Web 资源的校验和。 在运行 mfpdev app webupdate 时计算。 不是用户可配置的。 该校验和值在运行 mfpdev app webupdate 命令时更新。 有关 mfpdev app webupdate 命令的更多详细信息,请在命令窗口中输入 mfpdev help app webupdate
mfp:sdkChecksum 此值是用于标识唯一 MobileFirst SDK 级别的 MobileFirst Operations Console SDK 校验和。 不是用户可配置的。 缺省情况下,此值已设置。
mfp:security 此元素包含特定于客户机应用程序平台的配置以确保 MobileFirst 安全性。 包含
  • mfp:testWebResourcesChecksum
mfp:testWebResourcesChecksum 控制每次在移动设备上开始运行应用程序时,应用程序是否验证其 Web 资源的完整性。 属性:
  • enabled:有效值为 truefalse。 如果将此属性设置为 true,那么应用程序将计算其 Web 资源的校验和,并且会将此校验和与初次运行应用程序时存储的值进行比较。
  • ignoreFileExtensions:校验和计算可能需要几秒钟,这取决于 Web 资源的大小。 要使其更加快速,可以提供要在计算中忽略的文件扩展名列表。 当 enabled 属性值为 false 时,将忽略此值。
  • 使用 mfpdev app config android_security_test_web_resources_checksum key-value 命令设置 enabled 属性。
  • 使用 mfpdev app config android_security_ignore_file_extensions value 命令设置 ignoreFileExtensions 属性。

编辑 config.xml 文件中的 MobileFirst 设置

您可以使用 MobileFirst CLI 通过运行命令来编辑上面的设置:

mfpdev app config

接下来要学习的教程

集成 MobileFirst Ionic SDK 之后,您现在可以:

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on June 01, 2020