談?wù)劮窒硌?qǐng)獎(jiǎng)勵(lì)機(jī)制(附iOS實(shí)現(xiàn)代碼)

以后不做標(biāo)題黨了敛摘,感覺現(xiàn)在越來越多的技術(shù)文章題目屌炸天主籍,內(nèi)容空泛沒有干貨习贫,甚至好多把官方文檔摘過來,還摘得不全千元,簡(jiǎn)直是垃圾苫昌。雖然我現(xiàn)在寫不出牛逼的文章,但是我最起碼不會(huì)去做我反對(duì)的那種人幸海。

就像這樣

一祟身、先說點(diǎn)沒用的

  • 經(jīng)濟(jì)學(xué)十大原理中有一條:人們會(huì)對(duì)激勵(lì)做出反應(yīng)。這一原理指出人們是通過比較成本和收益來做出決策物独,當(dāng)收益和成本發(fā)生變化時(shí)袜硫,人的行為也會(huì)發(fā)生變化
  • 簡(jiǎn)單介紹一下口碑經(jīng)濟(jì),就是互聯(lián)網(wǎng)時(shí)代挡篓,因?yàn)閭鞑コ杀颈粯O大降低婉陷,好到讓用戶忍不住發(fā)朋友圈的產(chǎn)品,可以通過大量幾乎免費(fèi)的贏得媒體官研,獲得巨大的流量憨攒,同時(shí)提高轉(zhuǎn)化率的商業(yè)現(xiàn)象(摘自 劉潤老師 五分鐘商學(xué)院)
  • 一般情況下,用戶第一次認(rèn)識(shí)到一個(gè)產(chǎn)品的途徑無非三種
    • 付費(fèi)媒體:報(bào)紙刊登的廣告阀参、冠名贊助的電視節(jié)目等
    • 自有媒體:官方博客肝集、公眾號(hào)、官網(wǎng)等
    • 贏得媒體:指那些不屬于你蛛壳,但是也沒花錢杏瞻,別人自發(fā)的傳播所刀,這個(gè)也是傳播的最好形式

那么為什么口碑經(jīng)濟(jì)是最好的傳播形式呢?從用戶的兩方面需求來分析:

  • 心理需求:用戶對(duì)于一個(gè)陌生的產(chǎn)品往往是持有一定的懷疑態(tài)度捞挥,通過與周邊朋友的確認(rèn)浮创,朋友間的信任感給自己這個(gè)消費(fèi)行為帶來心理上的安全感
  • 社交需求,當(dāng)朋友都在討論某產(chǎn)品時(shí)砌函,會(huì)通過使用該產(chǎn)品的參與感提高自己在圈內(nèi)的存在感和認(rèn)同感


二斩披、怎樣才能最大限度上激發(fā)用戶自主進(jìn)行分享

除了練習(xí)內(nèi)功(自身產(chǎn)品優(yōu)秀)之外,一些花把勢(shì)(適當(dāng)?shù)莫?jiǎng)勵(lì)機(jī)制)也可以在一定限度上激發(fā)用戶進(jìn)行分享讹俊,先舉幾個(gè)別的行業(yè)的例子來說明問題:

  • 有的四六級(jí)培訓(xùn)班在學(xué)員取得證書后(針對(duì)男同學(xué))垦沉,請(qǐng)了一個(gè)淘寶模特,穿的美美的來給他們發(fā)證書來合影仍劈,結(jié)果那些學(xué)員的朋友圈無一幸免地做了廣告
  • 健身房里面介紹私教會(huì)員入會(huì)也會(huì)送給介紹人幾節(jié)課
  • 很多餐廳開業(yè)酬賓打七折厕倍,條件就是拍門店照片發(fā)朋友圈,憑借朋友圈截圖享受折扣

這個(gè)激勵(lì)措施是一定要基于產(chǎn)品好的基礎(chǔ)上贩疙,就好比:你的女神已經(jīng)對(duì)你有好感了讹弯,你賣個(gè)萌,她就答應(yīng)做你女朋友了这溅;如果妹子對(duì)你沒有好感组民,“賣萌”只會(huì)讓對(duì)方覺得丑人多作怪

二、產(chǎn)品角度

1悲靴、獎(jiǎng)勵(lì)有哪些主要形式邪乍?
  • 物質(zhì)激勵(lì)

  • 實(shí)物:比如微博推廣的轉(zhuǎn)發(fā)抽獎(jiǎng)送iPhone

  • 虛擬物品:滴滴、ofo等交通共享平臺(tái)分享就送的優(yōu)惠券对竣、充值卡

  • 精神激勵(lì)

  • 存在感:點(diǎn)贊庇楞、評(píng)論、關(guān)注等否纬,最直白的比如微博吕晌、貼吧等


  • 榮譽(yù):早期的QQ等級(jí)、支付寶會(huì)員的排行临燃、keep睛驳、得到app的各種頭銜、勛章膜廊,微信運(yùn)動(dòng)的排行榜


  • 權(quán)利:京東平臺(tái)的會(huì)員等級(jí)越高乏沸,包郵的最低價(jià)格越低


2、該功能主要界面
  • 比如從banner活動(dòng)頁等入口進(jìn)入“推薦有獎(jiǎng)”活動(dòng)h5頁爪瓜,該頁面一般包括
    • 我的成就:顯示已經(jīng)邀請(qǐng)多少人蹬跃,獲得多少獎(jiǎng)勵(lì)
    • 獎(jiǎng)勵(lì)規(guī)則按鈕:點(diǎn)擊進(jìn)入詳細(xì)的推薦活動(dòng)獎(jiǎng)勵(lì)規(guī)則
    • 分享途徑,總的來說包括以下三種:
    • 分享到微信铆铆、qq蝶缀、微博等第三方平臺(tái)
    • 二維碼(點(diǎn)擊后彈出二維碼丹喻,方便當(dāng)面分享)
    • 復(fù)制短鏈接(考慮到相關(guān)論壇或其他聊天分享)


  • 也可以在導(dǎo)航欄添加一個(gè)“明細(xì)”按鈕,點(diǎn)擊后進(jìn)入邀請(qǐng)明細(xì)界面翁都,具體顯示邀請(qǐng)了哪些好友碍论,具體獲得哪些獎(jiǎng)勵(lì)
  • 分享出去的一個(gè)中間頁,被分享者先看到這個(gè)活動(dòng)頁柄慰,然后在這個(gè)活動(dòng)頁點(diǎn)擊下載按鈕后鳍悠,
    • 已安裝app的用戶點(diǎn)擊分享鏈接后會(huì)直接打開app里的內(nèi)容頁
    • 未安裝app的用戶點(diǎn)擊鏈接后自動(dòng)跳轉(zhuǎn)到應(yīng)用商店.


3、產(chǎn)品必須要了解的技術(shù)
  • 使用 LinkedMe 技術(shù)生成一個(gè)每個(gè)推薦用戶專屬的短鏈接坐搔,然后分享出去藏研,通過此鏈接下載的用戶就會(huì)得到匹配,兩個(gè)用戶都得到相應(yīng)的獎(jiǎng)勵(lì)薯蝎,不需要用戶輸入邀請(qǐng)碼
  • 專屬鏈接中可以自定義各種參數(shù),比如推薦者的userId谤绳、分享平臺(tái)占锯、分享時(shí)間等
  • 被邀請(qǐng)的用戶觸發(fā)深度鏈接后,LinkedME深度鏈接自動(dòng)判斷App是否安裝
    • 如果判斷安裝App缩筛,直接打開App對(duì)應(yīng)深度鏈接的內(nèi)容頁面消略。
    • 如果判斷沒有安裝,直接跳轉(zhuǎn)到用戶默認(rèn)的應(yīng)用商店瞎抛,下載安裝艺演,注冊(cè)登陸后直接跳轉(zhuǎn)到具體內(nèi)容頁面。

三桐臊、技術(shù)實(shí)現(xiàn)思路

1胎撤、linkedMe主要方法
  • linkedMe官方demo很清楚,集成文檔也相對(duì)明了断凶,集成的時(shí)候在plist文件添加key值的時(shí)候注意加前綴伤提,文檔沒有著重說明,但是給的截圖是直接添加了“l(fā)inkedme_live_”的前綴
  • 生成短鏈接的方法
// 因?yàn)樯婕暗饺舾蓚€(gè)分享平臺(tái)认烁,因此封裝一個(gè)生成短鏈接的方法
// 生成短鏈接后肿男,進(jìn)行相應(yīng)的操作,因此
- (void)createShotrUrlWithChannel:(NSString *)channel Success:(void (^)())block_success
                          failure:(void (^)())block_failure {
    LMUniversalObject *LMObj = [[LMUniversalObject alloc] initWithCanonicalIdentifier:@"item/12345"];
    LMObj.title = @"";//標(biāo)題
    LMObj.canonicalUrl = @"http://";
    LMObj.contentDescription = @"plapla推薦活動(dòng)";
    LMObj.imageUrl = @"http://yourActivityImageUrl";
    
#warning 注意却嗡,這里添加參數(shù)的方式有兩種舶沛,一定和要和安卓添加的方式統(tǒng)一,因?yàn)樯婕暗絻蓚€(gè)平臺(tái)的分享下載
    // 添加參數(shù)方式一
//    [LMObj addMetadataKey:@"linkedMe_appid" value:@"appidNum"];
//    [LMObj addMetadataKey:@"linkedMe_udid" value:@"user_udid"];
//    [LMObj addMetadataKey:@"platform" value:channel];
//    
    NSString *dateDescription = [[NSDate date] description];
//    [LMObj addMetadataKey:@"linkedMe_time" value:dateDescription];
//    [LMObj addMetadataKey:@"linkedMe_user" value:validId];
    
    self.linkedUniversalObject = LMObj;
    
    LMLinkProperties *linkProperties = [[LMLinkProperties alloc] init];
    linkProperties.channel = channel;//渠道(微信,微博,QQ,等...)
    linkProperties.feature = @"Share";//表示深度鏈接的特點(diǎn)窗价,例如邀請(qǐng)如庭,分享等等;
    linkProperties.tags=@[@"LinkedME", @"Demo"];//表示深度鏈接的標(biāo)簽特性撼港,自定義任何值柱彻;
    linkProperties.stage = @"Live";//表示深度鏈接的階段特性豪娜,比如第一版產(chǎn)品發(fā)布,第二版本測(cè)試等等哟楷;
    linkProperties.source = @"iOS";
    
    // 添加參數(shù)方式二
    [linkProperties addControlParam:@"linkedMe_appid" withValue:AppID];//Demo標(biāo)識(shí)
    [linkProperties addControlParam:@"linkedMe_udid" withValue:UDID];
    [linkProperties addControlParam:@"platform" withValue:channel];
    [linkProperties addControlParam:@"linkedMe_time" withValue:dateDescription];
    [linkProperties addControlParam:@"linkedMe_user" withValue:validId];
    [linkProperties setAndroidPathControlParam:@"*"];
    [linkProperties setIOSKeyControlParam:@"*"];
    
    parmas = [NSString stringWithFormat:@"%@\n%@",[self.linkedUniversalObject description],[linkProperties description]];
    //開始請(qǐng)求短鏈
    [self.linkedUniversalObject getShortUrlWithLinkProperties:linkProperties andCallback:^(NSString *url, NSError *err) {
        if (url) {
            NSLog(@"[LinkedME Info] SDK creates the url is:%@", url);

            // h5中間頁拼接短鏈接
            self.shortUrl = [NSString stringWithFormat:@"%@?download=%@", @"中間頁的url", url];
            if (block_success) {
                block_success();
            }
        } else {
            if (block_failure) {
                block_failure();
            }
            self.shortUrl = H5_LIVE_URL;
        }
    }];
}
  • 由于活動(dòng)頁一般使用h5頁瘤载,因此調(diào)用生成短鏈接的方式也是js調(diào)用來做
- (void)js2oc_recommend:(NSDictionary *)dict {
    NSString *platform = dict[@"linkedMePlatform"];
    // 定義block
    void (^recommendBlock)();
    
    if ([platform isEqualToString:@"wechat"]) { // 分享到微信
        recommendBlock = ^(){
            [self shareAppToWeChatSession];
        };
    } else if ([platform isEqualToString:@"moments"]) { // 分享到朋友圈
        recommendBlock = ^(){
            [self shareAppToWeChatTimeline];
        };
    } else if ([platform isEqualToString:@"weibo"]) { // 分享到微博
        recommendBlock = ^(){
            [self shareAppToSina];
        };
    } else if ([platform isEqualToString:@"qq"]) { // 分享到qq
        recommendBlock = ^(){
            [self shareAppToQQSession];
        };
    } else if ([platform isEqualToString:@"qzone"]) { // 分享到qzone
        recommendBlock = ^(){
            [self shareAppToQzone];
        };
    } else if ([platform isEqualToString:@"qrcode"]) { // 生成二維碼
        recommendBlock = ^(){
            [self showQRImageWithString:self.shortUrl];
        };
    } else if ([platform isEqualToString:@"copy"]) { // 拷貝
        recommendBlock = ^(){
            // 這里是拷貝出來“廣告語+短鏈接”,方便論壇等粘貼
            // 樓主在這里使用新浪的api 將中間頁+linkedMe短鏈接 拼接而成的鏈接再次變短卖擅,對(duì)用戶也友好一些鸣奔,具體代碼就不粘了
#warning 當(dāng)然也可以使用 LInkedMe 官方推薦的js方法實(shí)現(xiàn)再次生成短鏈接
            UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
            pasteboard.string = [NSString stringWithFormat:@"活動(dòng)文案啦啦啦  %@",  self.shortURL];
            [MBProgressHUD showSuccess:@"復(fù)制成功"];
        };
    }
    [self createShotrUrlWithChannel:platform Success:recommendBlock failure:^{
        [MBProgressHUD showMessage:@"分享失敗,請(qǐng)檢查網(wǎng)絡(luò)"];
    }];
}
  • 在 AppDelegate 里面需要粘幾個(gè)方法惩阶,這里著重說一下 被推薦用戶第一次下載app后打開app處理的機(jī)制:點(diǎn)擊分享出去的中間頁 上的下載按鈕之后挎狸,進(jìn)入appStore下載后,在 didFinishLaunching 方法中需要進(jìn)行一下檢測(cè)攔截

其中 LinkedMe 官方 SDK 會(huì)自動(dòng)做一個(gè)緩存断楷,比如用戶觸發(fā)深度鏈接后锨匆,第一次打開app沒有連接網(wǎng)絡(luò),第二次打開時(shí)(有網(wǎng)絡(luò)狀態(tài))依舊會(huì)生效

- (void)checkoutLinkedMeWithOptions:(NSDictionary *)launchOptions {
    //初始化及實(shí)例
    LinkedME* linkedme = [LinkedME getInstance];
    
    //打印日志
    //    [linkedme setDebug];
    
    //獲取跳轉(zhuǎn)參數(shù)
    [linkedme initSessionWithLaunchOptions:launchOptions automaticallyDisplayDeepLinkController:NO deepLinkHandler:^(NSDictionary* params, NSError* error) {
        if (!error) {
            //防止傳遞參數(shù)出錯(cuò)取不到數(shù)據(jù),導(dǎo)致App崩潰這里一定要用try catch
            @try {
                NSLog(@"LinkedME finished init with params = %@",[params description]);
                //獲取詳情頁類型(如新聞客戶端,有圖片類型,視頻類型,文字類型等)
                //            NSString *title = [params objectForKey:@"$og_title"];
                NSString *tag = params[@"$control"][@"share_udid"];
                
                if (tag.length >0) {
                    // 接口一:向服務(wù)器上報(bào)信息冬筒,表示該用戶已經(jīng)下載app
                    [self reportLinkedMeInfoWithPara:params];
                }
            } @catch (NSException *exception) {
                NSLog(@"exception-->%@", exception);
            } @finally {
                
            }
        } else {
            NSLog(@"LinkedME failed init: %@", error);
        }
    }];
}
2恐锣、接口設(shè)計(jì)
  • 第一個(gè)接口已在上面講過:被推薦用戶第一次打開app的時(shí)候,需要把獲取到的 主動(dòng)分享用戶的appId舞痰、udid土榴、userId等上報(bào)給服務(wù)器。
  • 第二個(gè)接口是獲取獎(jiǎng)勵(lì)數(shù)目的api响牛,通過傳參可以獲取 作為 推薦者 和 被推薦者 的獎(jiǎng)勵(lì)信息
  • 第三個(gè)接口是領(lǐng)取獎(jiǎng)勵(lì)的api(被推薦的用戶需要注冊(cè)成功以后才可以領(lǐng)取獎(jiǎng)勵(lì)),這個(gè)實(shí)在返回的領(lǐng)取獎(jiǎng)勵(lì)的數(shù)目大于0的時(shí)候自動(dòng)調(diào)用的
3玷禽、iOS 10.3 關(guān)于keychain 特性的改動(dòng)
  • 如果 App 被刪除,之前存儲(chǔ)于 keychain 的數(shù)據(jù)也一同被刪除
  • 如果使用了 keychain group呀打,只要當(dāng)group 所有相關(guān)的 App 被刪除矢赁,keychain 中的數(shù)據(jù)就會(huì)被刪除

這一改動(dòng),雖未經(jīng) 蘋果官方公布贬丛,但是已經(jīng)在論壇的帖子里得到了 Apple 員工的確認(rèn)坯台,原文如下:This is an intentional change in iOS 10.3 to protect user privacy. Information that can identify a user should not be left on the device after the app that created it has been removed.
  It has never been a part of the API contract that keychain items created by an app would survive when the app is removed. This has always been an implementation detail.
  If a keychain item is shared with other apps, it won’t be deleted until those other apps have been deleted as well.

  • 得知這個(gè)消息的時(shí)候,我和我的小伙伴哭暈在廁所:



    這意味著我們不能再根據(jù)設(shè)備號(hào)來追蹤設(shè)備的唯一性瘫寝,果然協(xié)議沒白簽



    在考慮了三個(gè)小時(shí)之后蜒蕾,實(shí)在想不出自己轉(zhuǎn)行還能干啥的時(shí)候,只好微笑著擁抱變化
  • 后來研究知乎焕阿、微博等 App 重裝后直接登錄咪啡,用的不是簡(jiǎn)單的keyChain,而是 iOS9 推出的SFSafariViewController暮屡,這個(gè)可以將密碼撤摸、共享Cookie、iCloud Web表單數(shù)據(jù)、證書等存儲(chǔ)在系統(tǒng)里面准夷,與 iCloud keyChain 進(jìn)行綁定钥飞。感謝 iOS9,感謝SFSafariViewController衫嵌!另外读宙,領(lǐng)英也使用了相關(guān)技術(shù),而且說得很直白


  • 2017.09.10更新 在 iOS 10.3 版本的 beta 2 - beta 5版本中楔绞,keychain 中的數(shù)據(jù)會(huì)因?yàn)?APP 的刪除而刪除结闸,但 10.3 beta 6 版本之后,keychain 又可以繼續(xù)使用酒朵。
    點(diǎn)擊查看相關(guān)信息

4桦锄、最后,下列坑已踩蔫耽,后來者請(qǐng)直接繞過
  • 微博設(shè)置了白名單结耀,只有投放廣告的app才能直接進(jìn)入appStore。其他的要進(jìn)入一個(gè)中間頁再次點(diǎn)擊下載
  • 在plist文件設(shè)置LinkedMe id的時(shí)候匙铡,需要加上前綴
  • 考慮到 SSO登錄图甜、SNS登錄、新用戶免登陸慰枕、老用戶直接登錄具则、token過期等問題即纲,最好將檢測(cè) linkedMe 深度鏈接方法往后放具帮,比如在進(jìn)入主界面之后
  • 添加參數(shù)的方式有兩種,安卓和iOS要對(duì)應(yīng)低斋,demo中 安卓默認(rèn)沒有設(shè)置viewId蜂厅,但是iOS有默認(rèn)的唯一標(biāo)識(shí)符,需要統(tǒng)一一下
  • LinkedMe安卓有問題膊畴,QQ應(yīng)用寶就會(huì)加問題
  • 緩存不需要做掘猿,LinkedMe內(nèi)部已經(jīng)做好了,這次沒有網(wǎng)唇跨,下次會(huì)繼續(xù)請(qǐng)求
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稠通,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子买猖,更是在濱河造成了極大的恐慌改橘,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玉控,死亡現(xiàn)場(chǎng)離奇詭異飞主,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門碌识,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碾篡,“玉大人,你說我怎么就攤上這事筏餐】螅” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵胖烛,是天一觀的道長眼姐。 經(jīng)常有香客問我,道長佩番,這世上最難降的妖魔是什么众旗? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮趟畏,結(jié)果婚禮上贡歧,老公的妹妹穿的比我還像新娘。我一直安慰自己赋秀,他們只是感情好利朵,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猎莲,像睡著了一般绍弟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上著洼,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天樟遣,我揣著相機(jī)與錄音,去河邊找鬼身笤。 笑死豹悬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的液荸。 我是一名探鬼主播瞻佛,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼娇钱!你這毒婦竟也來了伤柄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤文搂,失蹤者是張志新(化名)和其女友劉穎适刀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體细疚,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蔗彤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年川梅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片然遏。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贫途,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出待侵,到底是詐尸還是另有隱情丢早,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布秧倾,位于F島的核電站怨酝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏那先。R本人自食惡果不足惜农猬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望售淡。 院中可真熱鬧斤葱,春花似錦、人聲如沸揖闸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汤纸。三九已至衩茸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贮泞,已是汗流浹背楞慈。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隙畜,地道東北人抖部。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓说贝,卻偏偏與公主長得像议惰,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乡恕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,304評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫言询、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,121評(píng)論 4 61
  • 碧云天黃葉地傲宜,波上寒煙翠运杭。一葉已驚秋,窗外梧桐函卒,黃葉遍地辆憔。在這個(gè)桂花香銷,秋蟲匿跡的早上,只有幾只不畏寒的鳥兒還在...
    半蓑煙雨任平生閱讀 194評(píng)論 0 0
  • 哈嘍虱咧,大家好熊榛。 在開始主題之前,我想問大家腕巡,最近薛之謙挺紅的玄坦,大家知道發(fā)生什么事嗎? 薛之謙在微博高調(diào)宣布和前妻復(fù)...
    JaneHe閱讀 307評(píng)論 0 0
  • 有什么事情是你一直能堅(jiān)持下來的呢?那么又是什么初衷讓你能夠堅(jiān)持车伞? 你有想過嗎择懂? 我們總是喜歡給自己制定計(jì)劃: 今天...
    辛迪越閱讀 297評(píng)論 0 0