反应本地 Adobe 体验平台身份, 用于边缘网络扩展
@adobe/react-native-aepedgeidentity 是iOS和Android周围的包装器 Adobe 边缘网络扩展体验平台身份 允许与 React Industrial 应用程序融合.
先决条件
Adobe 体验平台 Edge 网络扩展名具有以下对等依赖性,必须在安装身份扩展名前安装:
安装
见 所需经费和安装 主页上的指令
安装 @adobe/react-native-aepedgeidentity 软件包 :
国家预防机制:
npm install @adobe/react-native-aepedgeidentity
亚伦:
yarn add @adobe/react-native-aepedgeidentity
使用量
以 SDK 初始化 :
要初始化SDK,使用以下方法: 1
参考根 读取 关于SDK设置的更多信息.
导入扩展名 :
在您的本地反应申请中, 导入身份扩展名如下:
import {Identity} from '@adobe/react-native-aepedgeidentity';
API 参考
扩展版本 :
返回边缘网络扩展名的版本
语法
extensionVersion(): Promise<string>
示例
Identity.extensionVersion().then(version => console.log("AdobeExperienceSDK: EdgeIdentity version: " + version));
获取经验云:
这个API检索了应用程序最初推出时产生的ECID. 这个ID在应用程序升级之间保存,在标准应用程序备份过程中保存并被还原,并被去除于未安装. 承诺方法,一旦可用经验云ID,就会被引用,如果发生出乎意料的错误或请求超时,就会被拒绝.
语法
getExperienceCloudId(): Promise<string>
示例
Identity.getExperienceCloudId().then(experienceCloudId => console.log("AdobeExperienceSDK: Experience Cloud Id = " + experienceCloudId));
获取身份 :
获取边缘网络扩展名中的所有身份, 包括先前添加的客户标识 . 如果出现出乎意料的出错或请求超时,则在身份可用或被拒绝时将引用承诺方法.
语法
getIdentities(): Promise<IdentityMap>
示例
Identity.getIdentities().then(identities => console.log("AdobeExperienceSDK: Get Identities = " + JSON.stringify(identities)));
获取Url变量 :
返回 URL 查询参数中的标识符,用于混合移动应用程序中的消耗。 响应不会返回任何线索( 或 ) , 因为调用者负责将变量放入生成的 URL 正确位置 。 如果在检索 URL 变量时发生错误, 回调处理器会返回一个无效值 。 否则,会返回被编码的字符串. 一个被编码的字符串的例子如下:“adobe mc=TS% 3DTIMESTAMP VALUE% 7CMMID% 3DYOUR ECID% 7CMCORGID% 3D9YOUR ECLOUD ID”
- MCID:也叫"经验云ID"(ECID).
- MCORGID:也叫经验云组织ID.
- TS:提出请求时所用的时间戳.
语法
getUrlVariables(): Promise<string>
示例
Identity.getUrlVariables().then(urlVariables => console.log("AdobeExperienceSDK: URL Variables = " + urlVariables));
删除身份 :
从存储的客户端身份地图中删除身份 。 身份扩展将停止向边缘网络发送标识符 。 使用此 API 不从服务器侧用户配置图或身份图中删除标识符 .
不允许带有空ID或取名空格的身份并忽略.
不允许使用此 API 删除使用保留命名空间的身份 。 保留的名称空间为:
- ECID (英语)
- 以色列国防军
- 贾德
语法
removeIdentity(item: IdentityItem, namespace: string)
示例
let identityItem = new IdentityItem("[email protected]");
Identity.removeIdentity(identityItem, "Email");
重置标识 :
清除身份扩展所存储的所有身份,并生成一个新的经验云ID(ECID) 。 使用此 API 不从服务器侧用户配置图或身份图中删除标识符 .
:inform source:边缘网络扩展的"身份"不读取"Mobile SDK"的隐私状态,因此设定SDK的隐私状态来选择退出不会从"边缘网络扩展的"身份中清除身份.
详情见MobileCore.resetIdentities API 移动密码。 。 。 .
广告标识符 :
当这个API被调用有效的广告标识符时,边缘网络的"身份"扩展包括了XDM身份图中的广告标识符,使用Android中的名称space GAID(Google广告ID)和iOS中的名称DFA(广告者识别符). 如果API用空字符串("""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""". 广告标识符保存在应用软件升级之间,在标准应用程序备份过程中保存并恢复,并被移除于未安装.
语法
setAdvertisingIdentifier(advertisingIdentifier?: string)
示例
MobileCore.setAdvertisingIdentifier("adID");
更新身份 :
更新 SDK 内目前已知的身份 。 身份扩展将以添加剂的方式将收到的标识符与之前保存的标识符合并,在此API中不删除身份.
不允许带有空ID或取名空格的身份并忽略.
不允许使用此 API 更新使用保留命名空间的身份 。 保留的名称空间为:
- ECID (英语)
- 以色列国防军
- 贾德
语法
updateIdentities(identityMap: IdentityMap)
示例
let identityItem = new IdentityItem("[email protected]");
let map = new IdentityMap();
map.addItem(identityItem, "Email");
Identity.updateIdentities(map);
公共类
身份映射
定义包含一组最终用户身份的地图,该地图以命名空间集成代码或身份命名空间ID为键. 地图的值是一个数组,意味着可以携带每个命名空间的多个身份. 身份映射类的格式由 XDM 身份地图Schema。 。 。 .
更多信息,请参见 AEP 身份服务。 。 。 .
"identityMap" : {
"Email" : [
{
"id" : "[email protected]",
"authenticatedState" : "authenticated",
"primary" : false
}
],
"Phone" : [
{
"id" : "1234567890",
"authenticatedState" : "ambiguous",
"primary" : false
},
{
"id" : "5557891234",
"authenticatedState" : "ambiguous",
"primary" : false
}
],
"ECID" : [
{
"id" : "44809014977647551167356491107014304096",
"authenticatedState" : "ambiguous",
"primary" : true
}
]
}
示例
let map = new IdentityMap();
// Add an item
let identityItem = new IdentityItem("[email protected]");
map.addItem(identityItem, "Email");
// Remove an item
let identityItem = new IdentityItem("[email protected]");
map.removeItem(identityItem, "Email");
//Get a list of items for a given namespace
let namespacecheck = map.getIdentityItemsForNamespace("Email");
//Get a list of all namespaces used in current IdentityMap
let namespaces = map.getNamespaces();
//Check if IdentityMap has no identities
let hasNoIdentities = map.isEmpty();
身份项目
定义要包含在 身份映射。 。 。 .
身份项目类别的格式由以下定义: XDM 身份项目Schema。 。 。 .
示例
// Initialize
let item = new IdentityItem("identifier");
let item = new IdentityItem("identifier", AuthenticatedState.AUTHENTICATED, false);
//Getters
let id = item.id;
let state = item.authenticatedState;
let primary = item.primary
认证状态
定义状态 : 身份项目 被认证.
可能的认证状态是:
- 含糊不清 -- -- 国家不明确或没有定义
- 认证 - 通过登录或类似动作识别用户
- LoggedOut - 用户在之前的一次登录动作中被识别, 但现在没有登录
语法
export enum AuthenticatedState {
AUTHENTICATED = 'authenticated',
LOGGED_OUT = 'loggedOut',
AMBIGUOUS = 'ambiguous'
}
常被问到的问题(FAQ)
详情请参见: 常问问题页