1. 程式人生 > >打通 iOS 9 的通用連結(Universal Links)

打通 iOS 9 的通用連結(Universal Links)

在WWDC 2015 上, Apple 為 iOS 9 宣佈了一個所謂 通用連結 的深層連結特性, 視訊地址為 [無縫連結到您的 App]。雖然它不是一個必須實現的功能, 但還是需要引起一些注意。

在網上有太多讓人迷惑和錯誤的資訊, 這次 WWDC 本身也沒有去描述細節。幸運的是, 在 HOKO 我們在我們的智慧連結上添加了這一特性, 所以我們可以無縫的引導使用者到 APP 上。

什麼是通用連結?

很顯然 Apple 正在大力推動 APP 開發者在深層連結上有更好的體驗。所有的訊息都圍繞著深層連結技術。與此同時, Apple 推出通用連結:一種能夠方便的通過傳統 HTTP 連結來啟動 APP, 使用相同的網址開啟網站和 APP。

通過唯一的網址, 就可以連結一個特定的檢視到你的 APP 裡面, 不需要特別的 schema 。試想一下 Twitter 使用了通用連結, 那麼你每在 twitter。com 點選一個連結, 你的 iOS 裝置都會在 Twitter 裡面自動開啟這個頁面, 而不是當你沒有安裝時轉到普通的網頁。這個使用者體驗是順暢的, 最重要的是使用者不會失去上下文(跳到 APP 後 Safari 上不再留下空標籤)。

準備使用通用連結

實現通用連結不難, 但首先必須遵守一些先決條件。如下:

  • 有一個註冊的域名

  • 通過 SSL 訪問域名

  • 支援上傳一個 JSON 檔案到你的域名

  • 至少 iOS 9 beta 2 版本 [下載],這很重要, 因為如果是之前的測試版本你需要做額外的操作。

  • 至少 Xcode 7 beta 2 [下載]

如果你都有了, 那就來按照下面3個步驟來做吧。

1.新增域名到 Capabilities

首先, 你必須在 Xcode 的 capabilities 裡 新增你的 APP 域名, 必須用 applinks: 前置它:還新增一些你可能擁有的子域和擴充套件(www.domain.com, news.domain.com 等等)。

apple_capabilities.png

用 applinks: 字首新增所有域名, 同時不要忘了包含所有可能需要的子域名*

這將使你的 APP 從你的域名請求一個特殊的 JSON 檔案 apple-app-site-association。當你第一次啟動 APP,它會從 https://domain.com/apple-app-site-association 下載這個檔案。跳到下個步驟來了解如何構建這個檔案。

2.上傳 apple-app-site-association 檔案

該檔案必須存在且為了安全原因可使用 SSL 通過 GET 請求訪問到。你可以開啟一個文字編輯器然後寫一個這樣的簡單 JSON 格式:

1 2 3 4 5 6 7 8 9 10 { "applinks": { "apps": [], "details": { "TBEJCS6FFP.com.domain.App": { "paths":[ "*" ] } } } }

根據 paths 鍵設定一個允許的路徑列表(你希望APP 作出反應的路徑), 或只是一個星號如果你想開啟 APP 而不管路徑是什麼。

你可能想知道 TBEJCS6FFP.com.domain.App 從何而來, 基本上, 它是加入了你的團隊標識的 bundle id。你可以從你的 [蘋果開發賬號頁面]獲取你的團隊標識:

45.png

這個頁面有你的團隊標識, 你可以拷貝貼上到 apple-app-site-association 檔案

Bundle id 可以在專案的 target -- General 中找到:

1.png

檢查 General 標籤並拷貝貼上 bundle id 到 apple-app-site-association 檔案

3.在 APP 裡處理通用連結

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import UIKit

相關推薦

打通 iOS 9通用連結Universal Links

在WWDC 2015 上, Apple 為 iOS 9 宣佈了一個所謂 通用連結 的深層連結特性, 視訊地址為 [無縫連結到您的 App]。雖然它不是一個必須實現的功能, 但還是需要引起一些注意。 在網上有太多讓人迷惑和錯誤的資訊, 這次 WWDC 本身也沒

iOS通用連結Universal Links突然點選無效的解決方案

問題描述 測試告訴我,如果從微信開啟App之後,點選App右上角的應用網址之後,iOS通用連結就費了,在也用不了了,如圖: 原因分析 因為你點選右上角的網址之後,預設就把通用連結禁

Android Firebase接入--Firebase 動態連結Dynamic Links

動態連結簡介生成一個根據不同的場景響應不同行為的連結。比如:你想要為app新增一個房間內邀請好友的功能,如果好友也安裝了此app,點選分享連結就進入此房間,如果好友沒有安裝此app,那就跳轉到Google Play下載頁面(或者你自定義的任何頁面),如果好友沒有安裝此app,

XCode 10打包上傳後在iOS 9上Crash2018

問題描述: XCode 10打包的App在iOS 9上Crash(EXC_BAD_ACCESS)。 原因: App Store的Bug,上傳後的IPA經過App Store處理後,載入assets中的圖在iOS 9上會Crash。 解決方案三選一: 切回到XC

改變iOS app的iconiOS10.3

res sta play type assets icon stand wss 桌面 原文 改變iOS app的icon官方iOS10.3新增了可以讓開發者去更改app的icon,接下來看看怎麽更改。官方API給的東西很少,只是介紹了一個實例方法: 1

【POJ3074】Sudoku DLXDancing Links

puts struct pre i++ 能夠 ring include 為什麽 處理 數獨就要DLX,不然不樂意。 數獨的DLX構造:9*9個點每一個點有9種選擇,這構成了DLX的729行,每行、列、陣有限制,均為9行(/列/陣),然後每行(/列/陣)都有九

IOS 照片瀏覽器總結思想步驟

con bsp rop 設置 分析 瀏覽器 圖像 atom return 1. 界面分析========================================1> 需要讀取或修改屬性的控件需要設置屬性// 序號標簽// 圖片// 圖片描述// 左邊按鈕//

【POJ3740】Easy Finding DLXDancing Links精確覆蓋問題

ren .cn string 應該 進行 int 函數 操作 urn 題意:多組數據。每組數據給你幾行數,要求選出當中幾行,使得每一列都有且僅有一個1,詢問是可不可行,或者說能不能找出來。 題解:1、暴搜。2、DLX(Dancing links)。 本文寫的是DLX。算

ios開發之--仿微信自定義表情鍵盤

lai signed avi 創建 不能 url div load mps 先附上demo:https://github.com/hgl753951/CusEmoji.git 效果圖如下: 先說下具體的實現功能: 1,本地加載了一些H5的代碼,直接使用webview的lo

團隊作業9——事後分析Beta版本

arc 是不是 合作 一個 決定 例如 工具 角色 教訓 設想和目標 1. 我們的軟件要解決什麽問題?是否定義得很清楚?是否對典型用戶和典型場景有清晰的描述?   單個系統的部分功能  是  是 2. 我們達到目標了麽(原計劃的功能做到了幾個? 按照原計劃交付時間交

VueJs(9)---組件父子通訊

命名約定 log scrip lec fun func total 點擊 lte 組件(父子通訊) 一、概括 在一個組件內定義另一個組件,稱之為父子組件。 但是要註意的是:1.子組件只能在父組件內部使用(寫在父組件tempalte中);

05-樹9 Huffman Codes 30 分

提交 tor method all from code letter UNC ret 05-樹9 Huffman Codes (30 分) In 1953, David A. Huffman published his paper "A Method for the

9. Palindrome Numberpython+cpp

題目: Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Inp

SQL的一些學習連結更新中

1. group by https://www.cnblogs.com/jingfengling/p/5962182.html where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾資料,where條件中不能包含聚組函式,使用where條件過濾

iOS真機命令自動化測試

獲取裝置的的UDID idevice_id --list # 顯示當前所連線裝置的 udid instruments -s devices # 列出所有裝置,包括真機、模擬器、mac ideviceinfo 可以在返回的資料中找到 udid idevice_id -l 蘋果手機

iOS —— RunTime詳解交換方法

一、交換方法 開發使用場景:系統自帶的方法功能不夠,給系統自帶的方法擴充套件一些功能,並且保持原有的功能。 方式一:繼承系統的類,重寫方法 方式二:使用RunTime交換方法 例: UIImage+Extension.m #import "UIImage+Extension.h" #im

iOS —— RunTime詳解傳送訊息

一、RunTime簡介 RunTime簡稱執行時。OC就是執行時機制,也就是在執行時候的一些機制,其中最主要的是訊息機制。 對於C語言,函式的呼叫在編譯的時候會決定呼叫哪個函式。 對於OC語言,屬於動態呼叫過程,在編譯的時候並不能決定真正呼叫哪個函式,只有在真正

iOS 多工下載支援離線【轉】

轉自:https://blog.csdn.net/jiuchabaikaishui/article/details/68485743 程式碼下載 程式碼下載地址 效果展示 分析 說到iOS中的下載,有很多方式可以實現,NSURLConnection(已經棄用)就不說了,AFNetwor

51Nod1042 數字0-9的數量數位dp

這道題剛開始我直接用暴力模擬,果斷超時了鴨,不開心!然後查了資料發現了數位dp演算法,看了一下午也沒看明白,又不開森! 直接用得了,哈! 數位dp演算法是直接算出來1到某個數之間各個位數字之和,結果存在陣列c裡面。 #include <iostream> #define

7-9 輸出GPLT 20 分

軟體學院第十四次訓練 205 分 程式設計題共 9 小題,共計 205 分 剩餘時間: 694:28:31 剩餘時間: 694:28:31 程式設計題 7-9 輸出GPLT (20 分) 給定一個長度不超過1000