小程序支持打開移動應(yīng)用到底是怎么回事延柠?

從蘋果官方微信號 微信公共平臺 發(fā)布的文章 《小程序支持打開移動應(yīng)用》 來看捕仔,小程序新增了兩個功能:

  1. 支持打開移動應(yīng)用
  2. 標(biāo)題欄區(qū)域開放自定義

針對第二個功能榜跌,就是開發(fā)者可以自定義小程序菜單欄的顏色風(fēng)格钓葫,根據(jù)需求础浮,對小程序菜單外的標(biāo)題區(qū)域進(jìn)行自定義奠骄,比如設(shè)置標(biāo)題區(qū)域的顏色含鳞。這里主要介紹一下支持打開移動應(yīng)用的功能鸭廷。

支持打開移動應(yīng)用

乍一看其實(shí)有點(diǎn)標(biāo)題黨的行為熔吗,支持打開移動應(yīng)用桅狠?

讓我想到的是我可以用小程序打開任何移動應(yīng)用中跌?(答案是不能)

那我是不是可以打開自己的App晒他?(答案是有限制性地打開)

是不是可以打開系統(tǒng)自帶的瀏覽器陨仅?(答案是不能)

是不是可以打開第三方的移動應(yīng)用呢触徐?(答案也是不能)

其實(shí)狐赡,小程序打開移動應(yīng)用有一條硬性要求: 從移動應(yīng)用分享至小程序的頁面,用戶訪問時(shí)支持打開來源應(yīng)用享郊。 接下來進(jìn)一步解讀一下這條要求炊琉。

大部分程序都有微信分享功能又活,我們常做的就是將一個圖片柳骄、一段文字亦或是一個URL鏈接進(jìn)行分享舔清,可以分享給好友(包括群)鸠踪、朋友圈或者是添加到個人收藏营密,如下:

我們還可以分享小程序,如圖:

上面是一個搶票軟件(智行)分享到微信的一個小程序被去,好友可以點(diǎn)擊小程序幫忙加速惨缆。按照官方文章的說法坯墨,分享到微信的小程序里面如果有一個按鈕,實(shí)現(xiàn)如下:

<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打開APP</button>

那么當(dāng)點(diǎn)擊此按鈕時(shí)病往,就會打開源App捣染。在其他情況下是無法打開的,這里給出了一張能否打開移動APP的圖解:

這里小程序給出一個場景值概念停巷,只有場景值為1036(還有個狀態(tài)值true或false耍攘,它決定是否能夠打開APP榕栏。場景值為1036,狀態(tài)值為true)的小程序蕾各,才能夠打開源APP扒磁,即 小程序不能打開任何App,只能跳回分享小程序卡片的APP 示损。官方文檔也對這個標(biāo)識做了解釋:

在小程序的生命周期內(nèi),這個狀態(tài)的初始值為 false仔掸,之后會隨著小程序的每次打開(無論是啟動還是切到前臺)而改變:

1.當(dāng)小程序從 1036(App 分享消息卡片) 打開時(shí),該狀態(tài)置為 true。

2.當(dāng)小程序從 1089(微信聊天主界面下拉)或 1090(長按小程序右上角菜單喚出最近使用歷史)的場景打開時(shí)系吭,該狀態(tài)不變则吟,即保持上一次打開小程序時(shí)該狀態(tài)的值。

3.當(dāng)小程序從非 1036/1089/1090 的場景打開,該狀態(tài)置為 false。

針對第二條抬驴,1089和1090那個,我的理解是小程序類似于移動APP,它并沒有關(guān)閉,而是在后臺,所以1089和1090打開小程序只是把小程序喚到前臺,所以小程序狀態(tài)不變。狀態(tài)如果為true古瓤,也可以打開移動APP叽奥。

以上便是對小程序打開移動應(yīng)用的介紹,接下來看一下具體代碼實(shí)現(xiàn)赵哲。

代碼實(shí)現(xiàn)分享小程序打開移動應(yīng)用(iOS版本橡庞,Android類似)

首先要做的就是新建一個工程,然后集成微信分享,具體如何集成可以參見 官網(wǎng)集成文檔 ,集成之后,在頁面添加一個按鈕臀叙,觸發(fā)實(shí)現(xiàn)如下:

- (IBAction)openSmallProgramAction:(id)sender {
    //分享小程序的實(shí)現(xiàn)
    WXMiniProgramObject *wxMiniObject = [WXMiniProgramObject object];
    wxMiniObject.userName = @"gh_*************";
    wxMiniObject.path = @"pages/index/index";
    //
    WXMediaMessage *message = [WXMediaMessage message];
    message.title = @"我是小程序";
    message.description = @"我是用來測試打開App的小程序";
    message.mediaObject = wxMiniObject;
    
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
    req.message = message;
    req.scene = WXSceneSession;
    [WXApi sendReq:req];
   //原來做分享的實(shí)現(xiàn)
//    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
//    req.text = @"分享的內(nèi)容";
//    req.bText = YES;
//    req.scene = WXSceneSession;
//    [WXApi sendReq:req];
}

這里是所有的App都可以用上面的實(shí)現(xiàn)方式分享小程序么嗎?答案是否定的。看官方文檔的說法:

移動應(yīng)用分享功能支持小程序類型分享,要求發(fā)起分享的APP與小程序?qū)儆谕晃⑿砰_放平臺帳號京郑。支持分享小程序類型消息至好友會話,不支持“分享至朋友圈”及“收藏”绪抛。

也就是說小程序分享是有限制的:

  1. 發(fā)起分享的App與小程序?qū)儆谕晃⑿砰_放平臺賬號
  2. 只支持分享小程序類型消息至好友會話(SendMessageToWXReq的scence只支持WXSceneSession)

經(jīng)過測試店雅,一個賬號不能同時(shí)注冊 微信開放平臺微信公眾平臺 。也就是說:如果你的賬號注冊了微信開放平臺酱畅,那么該賬號就不能再次注冊微信公眾平臺滑负。

微信開放平臺放的是移動APP矮慕。

微信公眾平臺放的是小程序。

那官方所說的屬于同一微信開放平臺賬號就不是一個賬號下既有APP又有小程序(因?yàn)樾〕绦蚴窃谖⑿殴娖脚_開發(fā)的)缸夹。打開微信開放平臺頁面之后取劫,第一條就好理解了:

如果你想要在移動APP內(nèi)分享小程序庶诡,你必須在該APP所在的微信開放平臺賬號下綁定微信小程序蘸吓,這樣才可以在APP中實(shí)現(xiàn)小程序分享。這就是官方所說的APP和小程序?qū)儆谕晃⑿砰_放平臺賬號虫给。

那么APP怎么知道分享哪個小程序的视卢? 或者說APP是怎么和小程序關(guān)聯(lián)的呢?

這就要看上面的那段代碼(前提是你把小程序和APP放到了同一開放平臺賬號下)廊驼,其中有一行:

wxMiniObject.userName = @"gh_*************";

該userName就是小程序的userName据过,你可以登錄 微信公眾號平臺|小程序 ,然后在設(shè)置—>基本設(shè)置中查看蔬充,里面有個原始id蝶俱,就是小程序的userName。

這樣你就將APP的分享和小程序關(guān)聯(lián)起來了饥漫。

還有一個問題: 分享的小程序如何打開指定的頁面呢榨呆?

這就要看另一行代碼:

wxMiniObject.path = @"pages/index/index";

你需要設(shè)置一下小程序的path,這個path的頁面就是你點(diǎn)擊分享的小程序打開的頁面庸队。這里看一張小程序開發(fā)工具的圖:

pages所指的就是頁面积蜻,例如上圖的pages文件夾包含了detail和index和logs三個頁面,其中:

index:指代的是信用卡列表頁彻消。

detail:指代的是點(diǎn)擊列表某個item進(jìn)入的詳情頁竿拆。

logs:日志頁面

所以如果你想跳轉(zhuǎn)到詳情頁,那么你在設(shè)置wxMiniObject的path時(shí)就應(yīng)該寫成“pages/detail/detail”宾尚。這樣就實(shí)現(xiàn)了點(diǎn)擊分享的小程序進(jìn)入指定的頁面了(如果頁面需要參數(shù)你也要在分享時(shí)傳過去)丙笋。

wxml:相當(dāng)于html

wxss:相當(dāng)于css

這里其實(shí)是微信小程序自己定義了后綴。

這個時(shí)候你分享的小程序場景值為1036煌贴,且狀態(tài)為true御板,如果此時(shí)你小程序里面有open-type為“l(fā)aunchApp”的button,點(diǎn)擊button你就會跳回你的移動APP啦牛郑。如果想給APP回傳內(nèi)容怠肋,可以設(shè)置app-parameter。就像這個小按鈕:

<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打開APP</button>

到此淹朋,我想你應(yīng)該大概了解小程序支持打開移動應(yīng)用到底是怎么回事了笙各。

總結(jié)

小程序并不是支持打開所有移動APP,就算是同一個微信開放平臺賬號下面的移動APP和小程序础芍,小程序也不一定可以打開杈抢,具體還要看場景。

展望

小程序支持跳轉(zhuǎn)移動APP是很大的進(jìn)步仑性,在小程序以后的進(jìn)一步完善中春感,它應(yīng)該會朝著APP直接打開小程序方向邁進(jìn),而不僅僅是通過分享打開小程序。未來我們也許會實(shí)現(xiàn)點(diǎn)擊移動APP里面的某個按鈕直接打開某個小程序鲫懒,然后在小程序操作完成之后再次返回到移動APP嫩实。(例如微信支付,可以從移動APP跳轉(zhuǎn)到小程序進(jìn)行微信支付窥岩,支付成功后直接返回移動APP)

本文作者:張貴
原文地址:http://supermokey.com/2018/01/27/miniprogram-open-app/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末甲献,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子颂翼,更是在濱河造成了極大的恐慌晃洒,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朦乏,死亡現(xiàn)場離奇詭異球及,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)呻疹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門吃引,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刽锤,你說我怎么就攤上這事镊尺。” “怎么了并思?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵庐氮,是天一觀的道長。 經(jīng)常有香客問我宋彼,道長弄砍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任输涕,我火速辦了婚禮输枯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘占贫。我一直安慰自己,他們只是感情好先口,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布型奥。 她就那樣靜靜地躺著,像睡著了一般碉京。 火紅的嫁衣襯著肌膚如雪厢汹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天谐宙,我揣著相機(jī)與錄音烫葬,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛搭综,可吹牛的內(nèi)容都是我干的垢箕。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼兑巾,長吁一口氣:“原來是場噩夢啊……” “哼条获!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蒋歌,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤帅掘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后堂油,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體修档,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年府框,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吱窝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡寓免,死狀恐怖癣诱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袜香,我是刑警寧澤撕予,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站蜈首,受9級特大地震影響实抡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜欢策,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一吆寨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踩寇,春花似錦啄清、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至睛榄,卻和暖如春荣茫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背场靴。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工啡莉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留港准,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓咧欣,卻偏偏與公主長得像浅缸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子该押,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

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

  • 2017-02-07劉叫獸演講干貨 置頂公眾號蚕礼,不錯過每日精彩演講視頻烟具,干貨分享推送! 讀過了幾十本演講相關(guān)的書籍...
    劉叫獸閱讀 1,305評論 0 7
  • 六月,它總是被附上感傷囤躁、落寞的標(biāo)簽冀痕。因?yàn)檫@是一個畢業(yè)離別,奔赴遠(yuǎn)方和夢想的季節(jié)狸演。誠然言蛇,老天似乎也在和這個季節(jié)共鳴,...
    花夏沐閱讀 360評論 0 1
  • 想到這宵距,張倩安靜了腊尚!后來的事情,張倩無心再想满哪,她確信驚天動地的愛情婿斥,讓她和陳松走到現(xiàn)在,她欣慰的笑了笑哨鸭!熄了燈民宿! ...
    雨射零丁閱讀 392評論 0 1