MW Logo

mLink iOS SDK集成文档



一、集成准备

1.1 获取魔窗AppKey

登录魔窗后台管理(http://mgnt.magicwindow.cn/),按照步骤提示注册应用,可获得AppKey。

1.2 导入SDK

导入SDK有以下两种方法,第一种使用Cocoapods安装SDK,第二种直接下载SDK并集成,选择其中一种即可。

注意: SDK中包含了微信分享SDK,如果您的工程里面也同样包含了微信分享SDK,请将重复的删除,保留最新版的微信分享SDK即可,不会影响SDK的正常使用。

1.2.1 使用Cocoapods安装SDK

使用Cocoapods可以方便的统一管理第三方库:https://cocoapods.org

安装Cocoapods,并在项目根目录下创建Podfile文件,在Podfile文件中添加如下内容:

pod 'MagicWindowSDK'
      //如果使用bitcode,使用pod 'MagicWindowSDKBitcode'

在terminal下运行命令如下:

pod install

1.2.2 下载SDK并集成

(1) 下载SDK并集成

下载并解压最新版本SDK压缩包,解压后如下图:

将下载的SDK文件解压,拖动里面的mwSDK文件夹到工程中,如下图:

拖到工程中后,弹出以下对话框,勾选"Copy items into destination group's folder(if needed)",并点击“Finish“按钮, 如图:

注意:请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。

(2) 添加依赖库

如果使用了Cocoapods集成的SDK,可以忽略此步骤

AdSupport.framework

CoreTelephony.framework

CoreGraphics.framework

CoreFoundation.framework

SystemConfiguration.framework

CoreLocation.framework

CFNetwork.framework

Security.framework

WebKit.framework

ImageIO.framework

libz.tbd

libsqlite3.0.tbd

libc++.tbd

(3) 设置Other Linker Flags

如果使用的是最新版本的微信分享SDK,需要在你的工程文件中选择Build Setting,在"Other Linker Flags"中加入"-Objc -all_load",详情见微信官方文档:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319164&token=&lang=zh_CN

1.3 初始化SDK

在AppDelegate中,增加头文件的引用:

#import "MWApi.h"

在 - (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerApp方法来初始化SDK,如下代码所示:

注意:必须设置rootViewController,否则会导致无法弹出活动界面。如果您创建应用时使用storyBoard可以省略此步骤,系统会自动设置rootViewController。

mLink,可以将App中具体的内容页面作为一个服务(比如滴滴的打车服务),以链接的形式分享出来,通过这个链接,可以从外部唤起App并自动进入App中的指定服务页。

2.1 mLink基础配置

2.1.1 配置App的URL Scheme

iOS系统中App之间是相互隔离的,通过URL Scheme,App之间可以相互调用,并且可以传递参数。

选中Target-Info-URL Types,配置URL Scheme(比如: magicWindow)

在Safari中输入URL Scheme :// (比如: magicWinodw://) 如果可以唤起App,说明该URL Scheme 配置成功。

2.1.2 配置Universal link

Universal link是iOS9的一个新特性,通过Universal link, App可以无需打开Safari,直接从微信中跳转到App,真正的实现一键直达。如果使用URL Scheme的话,需要先打开Safari,用户体验变得很差,如果App未安装,还会出现错误对话框:

所以,我们强烈推荐配置Universal link,而通过魔窗来配置Universal link也变得非常的简便。

(1) 配置developer.apple.com的相关信息

登录 https://developer.apple.com,选择Certificate, Identifiers & Profiles,选择相应的AppID,开启Associated Domains

注意:当AppID重新编辑过之后,需要更新相应的provisioning Profiles。

(2) 在后台填写相关App的mLink配置信息

team ID可以从你的苹果开发账号页面获取,如图:

(3) 配置Xcode

在Xcode中选择相应的target,点击Capabilities tab,开启Associated Domains,在里面添加魔窗的域名(applinks:xxxx),域名的值在后台获取,请注意每次新注册的App分配的魔窗域名可能不一样。如图:

2.2 配置相关代码

2.2.1 通过URL Scheme和Universal link唤起app

(1) 在AppDelegate中的openURL方法中调用,用来处理URL Scheme

示例如下:

注意:当需要在openURL这个方法中处理第三方回调的时候(比如支付宝回调,微信回调等),请注意区分,比如

(2) 在AppDelegate中的continueUserActivity方法中调用,用来处理Universal link

示例如下:

2.2.2 配置深度链接,一键直达具体页

本模块实现的功能是通过深度链接跳转到APP内的详情页面,若想要使用如下功能,请务必将“mlink基本配置”部分全部实现。

在AppDelegate中的didFinishLaunchingWithOptions方法中调用

示例如下:

2.2.3 场景还原

场景还原:用户下载后无需任何操作,直达指定内页,大幅提升转化率

mlink基础功能中包含了场景还原,实现了“一键唤起具体页”功能即可实现场景还原,仅需在处理跳转逻辑的时候特殊处理下启动页或者登录等事件。


三、高级设置

3.1 ABA跳转

通过魔窗位连接App,实现App之间场景式的跳转及返回。

3.1.1 ABA的实现原理和具体实现

详情见:http://www.magicwindow.cn/doc/mw-AB.html

3.1.2 ABA返回浮层按钮

用户可通过”返回浮层”随时从跳转方App返回来源方App。

(1) 初始化返回浮层

在AppDelegate中,增加头文件的引用

#import " MWFloatView.h"

初始化

(2) 设置返回浮层滑动区域

(3) 展示返回浮层

(4) 隐藏返回浮层

(5) 设置返回应用A时所需参数

(6) 返回浮层的debug模式

(7) 返回浮层的示例

3.2 无码邀请

老用户分享App内容给新用户,新用户通过老用户分享的H5页完成安装App注册转化,老用户即可积累拉新成就,全程无需邀请码。奖励操作由App自行完成。

注意:若想要使用无码邀请的功能,请务必将mlink一键直达的功能全部实现。

四、基础指标统计

4.1 页面统计

统计某个页面的访问情况:

标记一次页面访问的开始

参数:name 页面名

标记一次页面访问的结束

参数:name 页面名

(注意:pageviewStartWithName和pageviewEndWithName要成对匹配使用才能正常统计页面情况)

4.2 计数统计

统计指定行为被触发的次数

(注意:eventId需要先在魔窗后台管理上注册,才能参与正常的数据统计)

4.3 设置用户信息

配置用户的基本信息

登录的时候,设置用户信息

退出登录的时候,取消当前的用户信息

(注意:设置MWUserProfile的时候,用户唯一标识mwUserId不能为空)

五、使用多渠道分析

如果你要对APP不同的发布渠道进行统计,不需要在魔窗后台创建多个APP,只需要设置不同的渠道即可。如果您只有App Store一个分发渠道,则不再需要做设定,我们会默认标记为App Store。

例如您在91发布,需要统计91渠道:

(注意:channelId需要先在魔窗后台管理上注册,才能参与正常的数据统计)

六、注意事项

6.1 如何防止app因获取IDFA被App Store拒绝

如果您的app使用魔窗SDK而未集成任何广告服务,但需要跟踪广告带来的激活行为,请按照下图填写App Store中的IDFA选项(勾选2,3,4):

(1)Serve advertisements within the app

服务app中的广告。如果你的app中集成了广告,你需要勾选这一项。

(2)Attribute this app installation to a previously served advertisement

跟踪广告带来的安装。

(3)Attribute an action taken within this app to a previously served advertisement

跟踪广告带来的用户的后续行为。

(4)Limit Ad Tracking setting in iOS

这一项下的内容其实就是对你的app使用idfa的目的做下确认,只要你选择了采集idfa,那么这一项都是需要勾选的。

6.2 支持ATS

苹果:2017 年1月1日后所有iOS应用必须启用ATS。

SDK已启用ATS。


七、FAQ

FAQ:https://github.com/magicwindow/mw-sdk-faq