shareinstall之IOS集成

提示:以下代碼(配置)由shareinstall根據當前應用動態生成,開發者可直接使用;按照以下步驟指引,10分鐘即可完成IOS SDK集成。
一、產品原理
精確的App安裝來源與攜帶參數安裝 :shareInstall的核心價值在於,幫助Android/iOS開發者通過shareInstall提供的sdk,精確的獲取app每一次安裝的分享(或推廣)來源。原理如下:開發者在分享的h5頁面上集成 shareInstall web sdk,發佈分享鏈接時在url上動態的拼接任意的自定義參數(如推廣渠道號,邀請碼等等);當某一終端訪問該h5頁面時,shareinstall web sdk將同時確定該設備的個性化信息和採集自定義參數,上傳至shareInstall服務器, 待用戶通過該h5頁面安裝app後首次打開時(如當前設備已安裝該app,將直接拉起該app並傳遞參數),使用shareInstall Android/iOS sdk從shareInstall服務器再取回暫存的自定義參數。
一鍵拉起功能:shareInstall通過標準的scheme、universal link 等技術,在app已安裝的情況下,從各種瀏覽器(包括微信、QQ、新浪微博、釘釘等主流社交軟件的內置瀏覽器)拉起app並傳遞自定義參數,避免重複安裝,如沒安裝則調至appStore或應用寶下載app,下載完畢喚起app的相應頁面。
二、iOS SDK集成
1、導入SDK

iOS SDK 下載 v1.0.6 http://api.shareinstall.com/download/1.0.6/ios

iOS DEMO 下載 v1.0.6 http://api.shareinstall.com/download/1.0.6/iosdemo

下載並解壓最新版SDK壓縮包,將libShareInstall.a和ShareInstallSDK.h導入工程中。
2、初始化SDK
在AppDelegate中,增加頭文件的引用:

#import “ShareInstallSDK.h”

在-(BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
方法中調用setAppKey方法來初始化SDK,如下代碼所示:

  • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {
    [ShareInstallSDK setAppKey:@"K2BK7B6HH7F7R2" withDelegate:self WithOptions:launchOptions];
    return YES;
    }

注:AppKey需填寫自己的AppKey,請到ShareInstall官網後臺查看自己應用的AppKey。
3、個性化安裝
當應用安裝後首次打開時,iOS sdk會收到網頁端通過js sdk傳來的自定義動態參數,精確的獲取app每一次安裝的分享(或推廣)來源。比如通過在分享鏈接url中附帶app邀請人的用戶id,就可達到免填邀請碼的效果;url中可拼接自定義的參數。在AppDelegate中,添加獲取安裝參數的回調方法,代碼如下所示:

#pragma mark ShareInstallDelegate
//通過ShareInstall獲取自定義參數,數據爲空時也會調用此方法

  • (void)getInstallParamsFromSmartInstall:(id) params withError: (NSError ) error{br/>NSLog(@"安裝參數params=%@",params);
    UIAlertView
    alert = [[UIAlertView alloc] initWithTitle:@"直接點擊App進來的" message:[self DataTOjsonString:params] delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
    //彈出提示框(便於調試,調試完成後刪除此代碼)
    [alert show];
    }

4、一鍵跳轉
ShareInstall通過標準的scheme、universal link等技術,在app安裝的情況下,從各種瀏覽器(微信、QQ、新浪微博、釘釘等主流社交軟件的內置瀏覽器)喚醒 app 並傳遞自定義參數,避免重複安裝。
5、 universal link 配置
Universal link是iOS9的一個新特性,通過Universal link,App可以通過各種瀏覽器跳轉到App(例如微信內可不通過safari,一鍵跳轉到App),真正實現一鍵跳轉到相應界面。
備註:iOS9以上推薦使用Universal link。
5.1 配置developer.apple.com的相關信息
到蘋果開發者中心,爲當前的App ID開啓Associated Domains服務:

5.2 配置Xcode
在Xcode中配置ShareInstall爲當前應用生成的關聯域名:Associated Domains 開關打開,添加Domains: applinks:k2bk7b6hh7f7r2.shareinstall.com

在AppDelegate中的continueUserActivity方法中調用,用來處理Universal link。

//Universal Links 通用鏈接

  • (BOOL)application:(UIApplication )application continueUserActivity:(NSUserActivity )userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
    {
    //判斷是否通過ShareInstall Universal Links 喚起App
    if ([ShareInstallSDK continueUserActivity:userActivity]) {
    return YES ;
    }else{
    //其他代碼
    return YES;
    }
    }

5.3 配置App的URL Scheme
iOS系統中App之間是相互隔離的,通過URL Scheme, App之間可以相互調用,並且可以傳遞參數。
備註:iOS9以下通過Url Scheme實現拉起。
5.4 在Xcode裏選中Target—Info—URL Types, 配置shareInstall爲當前應用生成的Url Scheme,如圖所示:
identifier 配置爲 com.ShareInstall,URL Schemes從shareInstall獲取(afap0343)。
注:identifier 一定要配置爲com.ShareInstall

5.5 URL Scheme相關代碼配置
注意:當需要在shareInstall這個方法中處理第三方回調的時候(比如支付寶、微信回調等),請注意區分。

//iOS9以下 URI Scheme
-(BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

//判斷是否通過ShareInstall URL Scheme 喚起App
if ([ShareInstallSDK handLinkURL:url]) {
     return YES;
}else{
    //其他代碼
    return YES;
}

return YES;

}

//iOS9以上 URL Scheme

  • (BOOL)application:(UIApplication )app openURL:(NSURL )url options:(nonnull NSDictionary *)options
    {
    //判斷是否通過ShareInstall URL Scheme 喚起App
    if ([ShareInstallSDK handLinkURL:url]) {

    return YES;

    }else{
    //其他代碼
    return YES;
    }

    return YES;
    }

5.6獲取喚醒參數,直達具體頁
通過在url中附帶具體的參數,喚醒app並跳轉到具體頁。

  • (void)getWakeUpParamsFromSmartInstall: (id) params withError: (NSError ) error{br/>NSLog(@"喚醒參數params=%@",params);
    UIAlertView
    alert = [[UIAlertView alloc] initWithTitle:@"URL shceme 進來的" message:[self DataTOjsonString:params] delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
    //彈出提示框(便於調試,調試完成後刪除此代碼)
    [alert show];
    }

5.7 其他代碼配置
如果做測試,獲取參數,則必須在Appdelegate.h加上如下測試代碼。

#pragma mark 將oc數據類型轉成NSString
-(NSString *)DataTOjsonString:(id)object
{
if (!object) {
return nil;
}

NSString *jsonString = nil;
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object
                                                   options:NSJSONWritingPrettyPrinted
                                                     error:&error];
if (! jsonData) {
    NSLog(@"Got an error: %@", error);
} else {

jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
return jsonString;
}

6、註冊量統計
使用Shareinstall 控制中心提供的渠道統計時,在App用戶註冊完成後調用,可以統計渠道註冊量。
#warning 必須在註冊成功的時調用[ShareInstallSDK reportRegister] 方法,否則可能導致註冊統計不準。
下一步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章