安装
安装和初始化Marketo Mobile SDK ,以发送推送通知和/或应用程序内消息。
在iOS上安装Marketo SDK
先决条件
- 在Marketo管理员中添加应用程序并获取该应用程序的密钥和Munchkin ID。
- 可选: 设置推送通知。
通过CocoaPods安装框架
- 安装CocoaPods。
$ sudo gem install cocoapods - 将目录更改为项目目录并创建具有智能默认值的Podfile。
$ pod init - 打开您的Podfile。
$ open -a Xcode Podfile - 将以下行添加到您的Podfile中。
$ pod 'Marketo-iOS-SDK' - 保存并关闭Podfile。
- 下载并安装Marketo iOS SDK。
$ pod install - 在Xcode中打开工作区。
$ open App.xcworkspace
使用Swift Package Manager安装框架
-
在项目导航器中选择您的项目。 在“添加包依赖关系”下,选择“+”。
-
从https://github.com/Marketo/ios-sdk添加Marketo包。
-
添加资源捆绑。 在项目导航器中找到
MarketoFramework.XCframework并在查找器中将其打开。 拖动MKTResources.bundle以复制捆绑包资源。
设置Swift桥接标头
-
转到“文件”>“新建”>“文件”,然后选择“头文件”。
-
将文件命名为“<ProjectName>-Bridging-Header”。
-
转到“项目”>“Target”>“构建阶段”>“Swift编译器”>“代码生成”。 将以下路径添加到目标桥接标头:
$(PODS_ROOT)/<_ProjectName_>-Bridging-Header.h
初始化SDK
使用您的Marketo帐户ID和应用程序密钥初始化Munchkin iOS SDK。 在Marketo管理员的“移动应用程序和设备”下找到这两个值。
-
打开Objective-C的AppDelegate.m文件或Swift的桥接文件。 导入Marketo.h头文件。
code language-none #import <MarketoFramework/MarketoFramework.h> -
将以下代码粘贴到
application:didFinishLaunchingWithOptions:函数中。将“本机”作为本机应用程序的框架类型传递。
| code language-objectivec |
|---|
|
| code language-swift |
|---|
|
- 将
munkinAccountId和secretKey替换为Marketo Admin > Mobile Apps and Devices中的“Munchkin帐户ID”和“密钥”。
iOS测试设备
- 选择项目>目标>信息> URL类型。
- 添加标识符${PRODUCT_NAME}。
- 将URL方案设置为
mkto-<Secret Key_>。 - 将应用程序sourceApplication添加到Objective-C的AppDelegate.m文件中。
在AppDelegate中处理自定义Url类型
| code language-objectivec |
|---|
|
| code language-swift |
|---|
|
如何在Android上安装Marketo SDK
先决条件
- 在Marketo管理员中添加应用程序并获取该应用程序的密钥和Munchkin ID。
- 可选: 设置推送通知。
- 下载适用于Android的Marketo SDK
使用Gradle设置Android SDK
-
在应用程序级别的build.gradle文件中,在依赖项部分下添加依赖项。
implementation 'com.marketo:MarketoSDK:0.8.9' -
将以下配置添加到根
build.gradle文件。code language-none buildscript { repositories { google() mavenCentral() } -
将项目与Gradle文件同步。
配置权限
打开AndroidManifest.xml并添加以下权限。 您的应用程序必须请求“INTERNET”和“ACCESS_NETWORK_STATE”权限。 如果应用程序已经请求这些请求,请跳过此步骤。
<uses‐permission android:name="android.permission.INTERNET"></uses‐permission>
<uses‐permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses‐permission>
初始化SDK
-
打开Application或Activity类。 在setContentView之前或在Application Context中将Marketo SDK导入活动。
code language-java // Initialize Marketo Marketo marketoSdk = Marketo.getInstance(getApplicationContext()); marketoSdk.initializeSDK("native","munchkinAccountId","secretKey"); -
ProGuard配置(可选)
如果您的应用程序使用ProGuard,请将以下行添加到项目文件夹中的
proguard.cfg文件中。 此配置排除Marketo SDK进行模糊处理。code language-none -dontwarn com.marketo.* -dontnote com.marketo.* -keep class com.marketo.`{ *; }
Android测试设备
将“MarketoActivity”添加到应用程序标记中的AndroidManifest.xml。
<activity android:name="com.marketo.MarketoActivity" android:configChanges="orientation|screenSize" >
<intent-filter android:label="MarketoActivity" >
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="add_test_device" android:scheme="mkto" />
</intent-filter>
</activity>
Firebase Cloud Messaging支持
MME SDK for Android支持直接使用Google的Firebase Cloud Messaging (FCM)。
将FCM添加到应用程序
-
将最新的Marketo Android SDK集成到Android应用程序。 查看GitHub上的步骤。
-
在Firebase控制台中配置Firebase应用程序。
-
在🔗Firebase控制台上创建/添加项目。
- 在Firebase控制台中选择
Add Project。 - 从现有Google Cloud项目列表中选择您的GCM项目,然后选择
Add Firebase。 - 在Firebase欢迎屏幕中,选择
Add Firebase to your Android App。 - 提供您的包名称和SHA-1,然后选择
Add App。 已下载Firebase应用程序的新google-services.json文件。 - 选择
Continue,然后按照在Android Studio中添加Google Services插件的详细说明操作。
- 在Firebase控制台中选择
-
在项目概述中导航到“项目设置”
- 单击“常规”选项卡。 下载“google-services.json”文件。
- 单击“Cloud Messaging”选项卡。 复制“服务器密钥”和“发件人ID”。 向Marketo提供这些“服务器密钥”和“发件人ID”。
-
在Android应用程序中配置FCM。
-
切换到Android Studio中的“项目”视图,查看项目根目录
-
将下载的
google-services.json文件移到Android应用程序模块的根目录中 -
在项目级别的build.gradle中,添加以下内容:
code language-none buildscript { dependencies { classpath 'com.google.gms:google-services:4.0.0' } } -
在应用程序级别的build.gradle中,添加以下内容:
code language-none dependencies { compile 'com.google.firebase:firebase-core:17.4.0' } // Add to the bottom of the file apply plugin: 'com.google.gms.google-services' -
最后,在ID中显示的栏中选择Sync now
-
-
-
编辑应用程序清单。 FCM SDK会自动添加所需的权限和接收者功能。 删除以下过时元素,这些元素可能导致消息重复:
code language-xml <uses-permission android:name="android.permission.WAKE_LOCK" /> <permission android:name="<your-package-name>.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="<your-package-name>.permission.C2D_MESSAGE" /> ... <receiver> android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="<your-package-name> /> </intent-filter> </receiver>
-