- 版本:2.0.0
- GitHub:https://github.com/Essent/nativescript-adobe-marketing-cloud
- NPM:https://npmjs.net.cn/package/nativescript-adobe-experience-cloud
- 下载
- 前一天:0
- 上周:1
- 上个月:8
NativeScript Adobe Experience Cloud 解决方案插件
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();
开发设置
为了便于开发和调试,请继续以下步骤
- 打开命令提示符/终端,导航到
src
文件夹,并运行npm run demo.ios
或npm run demo.android
以运行演示。 - 打开另一个命令提示符/终端,导航到
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_modules
和 demo/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';