NativeScript Adobe Experience Cloud
NativeScript Adobe experience cloud 集成插件
npm i --save nativescript-adobe-experience-cloud

NativeScript Adobe Experience Cloud 解决方案插件

npm version

npm install nativescript-adobe-experience-cloud --save

此插件基于 Nativescript 7 和 Adobe Experience Platform 解决方案

https://github.com/Adobe-Marketing-Cloud/acp-sdks/releases 获取 Adobe Experience Platform SDK https://aep-sdks.gitbook.io/docs/getting-started/get-the-sdk

设置应用程序以使用此插件。

设置 config.ts

创建一个配置文件并将 Adobe Experience 平台中的 ENVIRONMENT_ID 放置其中。

import { AdobeAnalyticsSettings } from "nativescript-adobe-experience-cloud";

export const adobeExperienceSettings: AdobeAnalyticsSettings = {
environmentId: 'Put your environment id here.',
debug: true
};

初始化 SDK

Android

import { AdobeAnalytics } from 'nativescript-adobe-experience-cloud';
import { adobeExperienceSettings } from '~/config';

@NativeClass()
@JavaProxy('nl.essent.Application')
class Application extends android.app.Application {

public onCreate(): void {
super.onCreate();
AdobeAnalytics.getInstance().initSdk(adobeExperienceSettings, this);
}

public attachBaseContext(baseContext: android.content.Context) {
super.attachBaseContext(baseContext);
}
}

IOS

import { AdobeAnalytics } from 'nativescript-adobe-experience-cloud';
import { adobeExperienceSettings } from '~/config';

@NativeClass()
class MyDelegate extends UIResponder implements UIApplicationDelegate {
public static ObjCProtocols = [UIApplicationDelegate];

applicationDidFinishLaunchingWithOptions(application: UIApplication, launchOptions: NSDictionary<string, any>): boolean {
AdobeAnalytics.getInstance().initSdk(adobeExperienceSettings, application);
return true;
}
}
ios.delegate = MyDelegate;

注意 此插件仅提供与 Adobe Experience 平台注册的初始扩展集。对于任何其他扩展,请根据移动属性安装说明分叉此插件进行配置。

启用生命周期跟踪

Android

使用 onResume 函数开始生命周期数据收集

import {AdobeAnalytics} from "nativescript-adobe-experience-cloud";

public onResume() : void {
AdobeAnalytics.getInstance().resumeCollectingLifecycleData();
super.onResume();
}
}

使用 onPause 函数暂停收集生命周期数据

public onPause() : void {
AdobeAnalytics.getInstance().pauseCollectingLifecycleData();
super.onPause();
}

IOS

开始收集生命周期数据是插件实现的一部分,在 SDK 初始化期间调用。

当应用程序从后台状态恢复时,您需要恢复生命周期数据的收集

applicationWillEnterForeground(application: UIApplication){
AdobeAnalytics.getInstance().resumeCollectingLifecycleData();
}

当应用程序进入后台时,暂停收集生命周期数据

applicationDidEnterBackground(application: UIApplication): void {
AdobeAnalytics.getInstance().pauseCollectingLifecycleData();
}

跟踪状态和操作

状态和操作可以通过与它们的本地对应签名匹配的方法调用进行跟踪。

隐私选项

请参阅:https://marketing.adobe.com/resources/help/en_US/mobile/ios/privacy.html

选择隐私选项

发送数据直到退出

AdobeAnalytics.getInstance().optIn();

保留数据直到加入

AdobeAnalytics.getInstance().optOut();

开发设置

为了便于开发和调试,请继续以下步骤

  1. 打开命令提示符/终端,导航到 src 文件夹,并运行 npm run demo.iosnpm run demo.android 以运行演示。
  2. 打开另一个命令提示符/终端,导航到 src 文件夹,并运行 npm run plugin.tscwatch 以监视插件中的文件更改。

现在去更改您的插件。它将自动应用于演示项目。

注意:如果您需要在插件中使用本地库或在 Info.plist/AndroidManifest.xml 中进行一些更改,这些更改不能仅通过 npm link 应用到演示项目。在这种情况下,您需要从 demo 使用 tns plugin add ../src 以将本地库和上述文件中的更改应用到演示。然后您可以使用 src 中的 npm run plugin.link 再次链接您的插件的代码。

链接到 CocoaPod 或 Android Arsenal 插件

为了使用本地 API,您需要在 src 文件夹中创建以下文件夹和文件

platforms --
ios --
Podfile
android --
include.gradle

这样做将使那些本地 API 对您的插件可用 :)

请参考这些现有插件了解如何简单地做到这一点

清理插件和演示文件

有时您可能需要删除 node_modulesdemo/platforms 文件夹以重新安装它们。

  • 运行 npm run clean 来清理,然后您可以运行 npm i 来安装新的依赖。

有时您只需要清理演示的 platforms 目录。

  • 运行 npm run demo.reset 来仅删除演示的 platforms 目录。

有时您可能需要确保演示中的插件文件已更新。

  • 运行 npm run plugin.prepare 将重新构建插件,然后将其从演示中移除并添加回来以确保。

单元测试

插件种子会自动为您的插件添加基于Jasmine的单元测试支持。打开 demo/app/tests/tests.js 并调整其内容,使测试在您的插件及其功能上下文中具有意义。

您可以在 这里 了解更多关于此主题的信息。

当您准备好测试插件的API时,请进入 src 文件夹并执行以下命令之一。

npm run test.ios
npm run test.android

发布到NPM

当您准备发布时

  • src/package.json 中增加版本号。
  • 进入 publish 文件夹并执行 publish.sh(如果文件不可执行,请运行 chmod +x *.sh)。

如果您只想创建一个包,请进入 publish 文件夹并执行 pack.sh。包将创建在 publish/package 文件夹中。

注意:要在Windows上运行bash脚本,您可以安装 GIT SCM 并使用Git Bash。

TravisCI

插件结构附带一个功能齐全的 .travis.yml 文件,该文件在Android模拟器和iOS模拟器上部署测试应用,并随后在 单元测试部分 运行测试。您只需克隆仓库,实现插件和测试,然后在 https://travis-ci.org/ 上注册。然后,在 "https://travis-ci.org/profile/<您的GitHub用户>" 上启用您插件的仓库,这样就完成了。下次有人提交PR或更改到分支时,TravisCI将触发构建以测试代码。

要正确显示当前构建状态,您必须编辑 README.md 文件开头的徽章,使其与您的仓库、用户和分支匹配。

在插件中引用 tns-core-modules

由于 Angular CLI中的一个问题,我们建议使用 tns-core-modules 的完整导入。有关更详细的解释,请参阅 此讨论

最终,在Angular CLI中的问题解决后,这将不再是限制,但在此之前,建议的方法是从 tns-core-modules 使用完整路径进行导入。以下是一个示例

错误

tsconfig.json

...

"paths": {
"*": [
"./node_modules/*",
"./node_modules/tns-core-modules/*"
]
}
...

yourplugin.common.ts

import * as app from 'application';

正确

yourplugin.common.ts

import * as app from 'tns-core-modules/application';