iOS 9人機界面指南(三):iOS 技術(shù) (中)
文章索引
- 3.9 通知(Notifications)
- 3.10 社交媒體(Social Media)
- 3.11 iCloud
- 3.12 HealthKit
- 3.13 應(yīng)用內(nèi)購買服務(wù)(In-App Purchase)
- 3.14 游戲中心(Game Center)
- 3.15 iAd富媒體廣告(iAd Rich Media Ads)
- 3.16 無線打印 (AirPrint)
- 3.17 訪問用戶數(shù)據(jù)(Accessing User Data)
- 3.18 快速查看(Quick Look)
譯者注:本文譯自蘋果官方人機界面指南 iOS Human Interface Guidelines (2015年10 月21日),由騰訊ISUX設(shè)計師翻譯整理,非發(fā)文者一人之作。譯文首發(fā)于ISUX博客,如在閱讀過程中發(fā)現(xiàn)錯誤與疏漏之處,歡迎不吝指出。后續(xù)章節(jié)會陸續(xù)更新,敬請期待。
3.9 通知(Notifications)
通知為人們提供即時的重要信息和功能。人們能在多種情況下收到通知,例如在鎖屏界面中,或者在使用應(yīng)用時,或者訪問通知中心時。 通知中心有兩種視圖:通知(Notifications )和今天(Today)。
今天視圖顯示了一組可編輯的部件。今天部件是一個應(yīng)用擴展,顯示了少量及時和重要的信息或功能,這些信息或功能則是由用戶所關(guān)注的應(yīng)用所提供。舉例來說,日歷部件只顯示了今天的事件。點擊日歷部件中的一個事件可以喚起日歷應(yīng)用,并打開該事件,用戶接下來可以編輯該事件或管理其他的事件。想要了解更多關(guān)于設(shè)計今天部件的內(nèi)容,請參見今天部件。
通知視圖會顯示用戶感興趣的應(yīng)用所發(fā)出的最近通知。用戶可以在設(shè)置(Settings)中來設(shè)置是否在通知中心顯示該應(yīng)用的通知。 iOS應(yīng)用可以使用通知來讓人們知道一些有趣的事情是什么時候發(fā)生的,例如:
- 收到一條消息
- 事件即將發(fā)生
- 有新的數(shù)據(jù)可下載了
- 某些狀態(tài)發(fā)生了變化
在iOS8及之后的版本中,應(yīng)用可以定義用戶在通知中的操作。例如,用戶可以在待辦事項應(yīng)用的通知中就標(biāo)記該事項已完成,而無需額外打開應(yīng)用。 iOS定義了兩種類型的通知。
- 本地通知(local notification)由應(yīng)用安排待發(fā)送,最終通過iOS發(fā)送到同一設(shè)備中,無論該應(yīng)用當(dāng)前是否正在后臺運行。例如,日歷或待辦事項應(yīng)用可以安排一條本地通知來提醒人們一個即將到來的會議或者日期。
- 遠程通知(remote notification)(也稱為推送通知(push notification))是由應(yīng)用的遠程服務(wù)器通過蘋果推送通知服務(wù)來發(fā)送的,這類通知最終會被推送到所有安裝了該應(yīng)用的設(shè)備。例如,一款在線競技類的游戲,用戶可以和其他玩家競賽的,可以更新所有玩家的最新狀態(tài)。
注意:應(yīng)用擴展可能會要求遠程通知必須發(fā)送到它的容器應(yīng)用。在這種場景下,容器應(yīng)用常常會在后臺運行來處理通知。想要了解更多關(guān)于應(yīng)用擴展的內(nèi)容,請參見應(yīng)用擴展。
如果當(dāng)你的應(yīng)用正在后臺運行時收到了本地或遠程的通知,你就應(yīng)該以你的應(yīng)用所特有的方式將信息傳達給你的用戶。 為了確保用戶能夠自定義他們的通知體驗,你應(yīng)該盡可能多地支持以下的通知類型:
- 橫幅(Banner)
- 警告框(Alert)
- 小氣泡(Badge)
- 聲音(Sound)
注意:在iOS8及之后的版本中,你必須對所有你想發(fā)送給用戶的通知類型進行注冊。當(dāng)你第一次進行注冊動作時,用戶會遇到一個警告框,他們可以在其中操作來決定允許或拒絕所有來自你的應(yīng)用的通知。不管用戶選擇的結(jié)果是什么,他們應(yīng)始終能訪問應(yīng)用的設(shè)置來更改此項設(shè)置,或者設(shè)置他們想要接收的通知類型。
橫幅(banner)是一個小而透明的視圖,會出現(xiàn)在屏幕頂部并在幾秒后消失。用戶還可以看到在鎖屏當(dāng)中的橫幅以及在通知中心中以通知形式出現(xiàn)的橫幅。在橫幅中,iOS會顯示通知的內(nèi)容和應(yīng)用的小圖標(biāo)(欲了解更多關(guān)于小圖標(biāo)的內(nèi)容,請參見 App Icon)。用戶點擊橫幅來隱藏顯示并切換到發(fā)送通知的應(yīng)用。
除了默認(rèn)的點擊動作之外,當(dāng)用戶輕掃橫幅時,你還可以定義兩個動作按鈕。點擊通知動作按鈕來隱藏橫幅的顯示并啟動你的應(yīng)用(可能是在后臺)來執(zhí)行動作。
通知警告框是顯示在屏幕上的標(biāo)準(zhǔn)警告框視圖,需要用戶操作后才會隱藏。當(dāng)用戶點擊Options按鈕后,你需要提供并顯示通知消息以及任何一個默認(rèn)動作,或最多四個特定動作。警告框的背景樣式不能做修改。 當(dāng)用戶點擊警告框中的一個默認(rèn)或自定義動作按鈕時,iOS會同時隱藏警告框并運行你的應(yīng)用(可能是在后臺)。點擊關(guān)閉或確定按鈕會隱藏警告框而不打開應(yīng)用。
小氣泡(badge)是一個顯示未讀通知數(shù)量的紅色小圓(小氣泡顯示在應(yīng)用圖標(biāo)的右上角)。小氣泡的大小和顏色不能做修改。 橫幅、警告框和小氣泡這三種通知都可以使用自定義或系統(tǒng)提供的聲音。
在通知中謹(jǐn)慎使用具破壞性的動作。要確定用戶有足夠的上下文來避免意想不到的后果。為了幫助用戶區(qū)分你所定義的破壞性動作,iOS會用紅色來顯示它。有時候,在應(yīng)用執(zhí)行破壞性動作之前,應(yīng)該請求用戶進行確認(rèn)。舉個例子,如果在鎖屏的橫幅(banner)中提供了一個破壞性動作,那么就應(yīng)確保只有設(shè)備的主人才能執(zhí)行該動作(你需要在代碼上實現(xiàn)這一需求)。
為每個動作按鈕提供自定義標(biāo)題。創(chuàng)建一個簡短的標(biāo)題來描述清楚將要發(fā)生的動作。例如,游戲可能會使用“Play”作為標(biāo)題來表明,點擊這個按鈕會打開應(yīng)用來進行游戲。確保標(biāo)題:
- 使用標(biāo)題樣式的大小寫(title-style capitalization)
- 足夠簡短,能不被截斷地顯示在按鈕內(nèi)(也應(yīng)確保測試各種語言文字的標(biāo)題顯示正常)
不要為同一個事件重復(fù)發(fā)送通知。用戶可以選擇處理通知項;通知項在用戶未處理前會一直顯示。如果為同一事件重復(fù)發(fā)送通知,通知中心列表中會滿是通知,用戶就有可能會關(guān)閉你的應(yīng)用的通知。
不要在通知消息中包含你的應(yīng)用名稱。自定義信息會在警告框和橫幅中顯示,也會在通知中心中以通知的形式顯示。你無需在自定義信息中顯示你的應(yīng)用名稱,因為iOS會在顯示信息的同時自動顯示應(yīng)用名稱。 為了使本地或遠程通知信息更有作用,你應(yīng)該:
- 專注于信息而不是用戶的行為。避免告訴人們點擊哪個按鈕或如何打開你的應(yīng)用
- 足夠簡短,一兩行就可以顯示完整。較長的信息對于用戶來說很難進行快速閱讀,也會造成在警告框中需要滾動才能查看完整
- 使用句式大小寫(sentence-style capitalization),并配以合適的結(jié)束語句符號??赡艿臅r候,可以使用一個整句
注意:如有必要,iOS會縮短你的消息以便能在各種通知發(fā)送樣式下顯示;為了最好的效果,你不應(yīng)主動縮減你的消息。
保持小氣泡的內(nèi)容是最新的。當(dāng)用戶注意到新信息時,即時更新小氣泡非常重要,這樣用戶就不會覺得收到了額外的通知。注意,當(dāng)小氣泡為0時也會移除通知中心中所有對應(yīng)的通知項。
重要:不要使用小氣泡做通知以外的用途。記住,用戶能夠關(guān)閉應(yīng)用的小氣泡,所以你無法確定他們一定能看到小氣泡中的內(nèi)容。
當(dāng)收到通知時,提供用戶可以選擇聽到的音效。當(dāng)人們沒有在看屏幕的時候,可以通過音效獲取他們的注意。例如,日歷應(yīng)用可能會在顯示警告框的同時播放一個音效來提醒人們一個即將到來的事件。再如,協(xié)作任務(wù)管理應(yīng)用可能會在小氣泡更新時播放一個音效來告知某個遠程協(xié)同的同事已經(jīng)完成了某個任務(wù)。
你可以提供自定義的音效,或者使用內(nèi)置的警告音。如果你創(chuàng)建了自定義音效,請確保它是簡短的、有特色的并且是經(jīng)由專業(yè)制作的。(想要了解更多關(guān)于音效的技術(shù)需求,請參閱Local and Remote Notification Programming Guide中的Preparing Custom Alert Sounds。)注意,當(dāng)通知發(fā)送后,你無法以編程方式來觸發(fā)設(shè)備的震動,因為用戶對于警告框是否伴隨震動擁有支配權(quán)。
3.10 社交媒體(Social Media)
人們會期望在任何場景下都可以使用他們喜愛的社交媒體帳號。iOS以人們喜歡的方式將社交媒體的交互與你的應(yīng)用進行了整合。
注意:當(dāng)用戶點擊動作按鈕時,他們會得到一個如上圖的動作視圖控制器。想要了解更多關(guān)于這個視圖控制器的內(nèi)容,請參見Activity View Controller。
動作視圖控制器的中間一行顯示了用戶啟用的和系統(tǒng)提供的分享應(yīng)用擴展。想要了解更多關(guān)于設(shè)計分享擴展的內(nèi)容,請參見 Share and Action Extensions。
考慮在你的應(yīng)用中為用戶提供一種簡便的方式來撰寫郵件。用戶有可能會啟用分享擴展以便能在任何地方都可以發(fā)送內(nèi)容。但是你也可以使用系統(tǒng)提供的撰寫視圖控制器來呈現(xiàn)給用戶,他們可以在其中進行編輯操作。你可以在顯示給用戶進行編輯之前,預(yù)先加載具有自定義內(nèi)容的撰寫視圖(在你呈現(xiàn)給用戶之后,只有用戶可以編輯這些自定義內(nèi)容)。想要了解更多關(guān)于社交框架(Social framework)的編程界面,包括SLComposeViewController類,請參見 Social Framework Reference.
如果可能,避免要求用戶登錄進入一個社交媒體賬戶。社交框架(Social framework)會和帳號框架(Accounts framework)一起來支持一個單點登錄模式,所以你可以獲得授權(quán)來訪問用戶的帳號,而無需要求他們來重新授權(quán)。如果用戶還沒有登錄進入一個帳號,你可以顯示UI來讓他們進行登錄。
3.11 iCloud
iCloud可以讓用戶隨時隨地用不同的設(shè)備訪問他們想要的內(nèi)容。將iCloud集成到應(yīng)用中,用戶不用進行同步操作就可以在不同場景下使用不同的設(shè)備訪問并編輯私人信息。
為了提供這種體驗,你可能需要重新檢查你的應(yīng)用中現(xiàn)有的信息,尤其是用戶自建內(nèi)容的存儲、訪問和展示方式。想要了解如何使用iCloud,請參考iCloud Design Guide.
iCloud用戶體驗的一個基本方向是透明性:理想情況下,用戶不需要知道他們的信息存儲在什么地方,也不需要去思考當(dāng)前瀏覽的信息是哪個版本的。以下幾點可以幫助你創(chuàng)建用戶期望的iCloud體驗。
如果可能,讓用戶方便地在你的應(yīng)用中啟用iCloud。在iOS設(shè)備上,用戶可以在設(shè)置中登錄iCloud賬戶,因此多半用戶會期望應(yīng)用可以自動啟用iCloud。但是如果你覺得用戶可能需要自主選擇是否使用你應(yīng)用的云服務(wù),你可以在用戶第一次進入應(yīng)用時提供一個簡單的選項來進行設(shè)置。大多數(shù)情況下,這個選項應(yīng)該為:是否將所有內(nèi)容上傳到云端。
尊重用戶的iCloud空間。一定要記住iCloud空間是用戶花錢買來的有限資源。你應(yīng)該使用iCloud來存儲用戶自己創(chuàng)建和可理解的信息,避免將可再生的應(yīng)用資源和內(nèi)容存儲在云端。同樣要記住,當(dāng)用戶登錄了iCloud賬戶時,你的應(yīng)用的文件夾內(nèi)容也會自動備份到云端。所以為了節(jié)省用戶云端空間,你最好只挑選必要的信息存儲于文件夾中。
避免讓用戶自己選擇在iCloud上存儲哪些文件。一般地,用戶會期望他們在意的所有信息都能夠通過iCloud訪問到。實際上大多數(shù)用戶都不需要進行個人文件存儲的管理,所以你的應(yīng)用也可以不用考慮這個問題。為了提供更好的用戶體驗,你可能想要重新構(gòu)建處理和展示內(nèi)容的方式,這樣就可以給用戶提供更多的文件管理功能。
決定哪種類型的信息需要存儲在云端。除了存儲用戶自建的文件和內(nèi)容,你還可以存儲少量的其他信息在云端,例如用戶當(dāng)前的狀態(tài),用戶的偏好設(shè)置等等。你可以使用iCloud的關(guān)鍵值存儲來保存這類信息。例如,用戶使用你的應(yīng)用看了一個雜志,你可以使用iCloud的關(guān)鍵值存儲來保存用戶瀏覽到的位置,這樣用戶在別的設(shè)備上重新打開這個雜志時就能從上次離開的地方繼續(xù)瀏覽了。
如果你使用iCloud的關(guān)鍵值存儲來保存用戶的偏好設(shè)置,確保用戶在每個設(shè)備上都是想這樣設(shè)置的。例如,有些偏好設(shè)置在工作環(huán)境中比在家里要更好用。在某些情況下,將偏好設(shè)置保存在應(yīng)用服務(wù)器上要比保存在云端更合理,這樣偏好設(shè)置就不會受iCloud的限制。
確保iCloud無法使用時應(yīng)用的行為是合理的。例如,用戶退出iCloud賬戶,關(guān)閉應(yīng)用的iCloud或者進入飛行模式時,iCloud都是無法使用的。在這些情況下,用戶都進行了某些操作來禁止iCloud服務(wù),所以你的應(yīng)用可以不用再進行提醒。但是,需要告訴用戶在打開iCloud之前,當(dāng)前做的修改在其他設(shè)備上都無法看到。
避免給用戶創(chuàng)建“本地”文件的選項。不管你的應(yīng)用是否支持iCloud,都不應(yīng)該給用戶提供因設(shè)備而區(qū)分的文件系統(tǒng)。相反,你應(yīng)該希望用戶關(guān)注通過iCloud訪問文件的普適性。
在合適的時候自動更新信息。最好不需要用戶來確認(rèn)他們正在訪問的是最新的內(nèi)容。但是,也需要在用戶設(shè)備存儲空間和帶寬限制之間做出平衡。如果你的用戶要使用非常大的文件,那么讓他們自己選擇是否要從云端下載一個更新的文件可能更合適。如果需要這樣做的話,可以設(shè)計一種方式來指出當(dāng)前在云端有一個該文件的最新版本。當(dāng)用戶選擇更新時,如果下載時間較長最好給用戶明顯的反饋。
告知用戶刪除某文件的后果。當(dāng)用戶從有iCloud服務(wù)的應(yīng)用上刪除文件的時候,這個文件同樣會從用戶的iCloud賬號和其他設(shè)備上刪除。所以最好在執(zhí)行刪除操作之前告知用戶刪除的后果,讓用戶進行確認(rèn)。
必要時盡可能早地告知用戶沖突問題。使用iCloud編程接口,你需要在不打擾到用戶的情況下解決大多數(shù)不同版本之間的沖突問題。但在有些情況下,你需要盡可能早地檢測出沖突問題來避免用戶在錯誤版本上浪費太多時間。你需要設(shè)計一種自然的方式來告訴用戶有沖突存在,接著給用戶提供方便的方式來區(qū)分不同版本以及做出決策。
確保在搜索中包括用戶在云端的信息。使用iCloud的用戶趨向于認(rèn)為云端的信息是普遍可訪問的,所以他們會期望搜索結(jié)果中也有云端的信息。如果你的應(yīng)用允許用戶搜索他們的信息,確保你使用了將搜索擴展到iCloud賬戶的接口。
3.12 HealthKit
在iOS 8及之后的版本中,使用HealthKit構(gòu)建的應(yīng)用可以利用從健康應(yīng)用中獲取的數(shù)據(jù)為用戶提供更強大、更完整的健康及健身服務(wù)。在用戶允許的情況下,應(yīng)用可以通過HealthKit來讀寫健康應(yīng)用(用戶健康相關(guān)數(shù)據(jù)的存儲中心)中的數(shù)據(jù)。
舉例來說,用戶可以允許營養(yǎng)應(yīng)用從健康應(yīng)用中獲取體重及活動數(shù)據(jù),用于告訴他們?yōu)榱诉_到既定目標(biāo)一天應(yīng)該消耗多少卡路里。這個營養(yǎng)應(yīng)用還可以通過HealthKit更新健康應(yīng)用上實際消耗的卡路里數(shù)據(jù),讓用戶能更容易地跟蹤他們的健康計劃的進展。想要了解如何將HealthKit整合進你的應(yīng)用中,請參閱HealthKit Framework Reference.
下面的指南能夠幫助你設(shè)計出讓人信任且喜愛的健康類應(yīng)用:
當(dāng)且僅當(dāng)你有令人信服的理由時才去訪問健康應(yīng)用中的數(shù)據(jù)。HealthKit是為了專注于健康及健身服務(wù)的應(yīng)用而設(shè)計的。如果一個應(yīng)用請求獲取與其不相關(guān)的健康信息,用戶不太可能會放心地將個人數(shù)據(jù)提供給這個應(yīng)用。因此,你需要確保用戶能夠理解你的應(yīng)用需要獲取他們某些具體的個人健康數(shù)據(jù)的原因,并告訴他們共享這些數(shù)據(jù)的好處。
避免在用戶還不知道用途前就向他們請求訪問私人健康數(shù)據(jù)。當(dāng)用戶能夠看到當(dāng)前的任務(wù)和你需要訪問的數(shù)據(jù)的關(guān)聯(lián)性時,會更樂意給予你訪問權(quán)限。舉例來說,當(dāng)用戶在給一個減肥應(yīng)用填寫資料時,讓他允許你訪問健康應(yīng)用中儲存的體重數(shù)據(jù)是合理的。但如果那個減肥應(yīng)用在啟動時就立即提出訪問體重數(shù)據(jù)的請求,用戶更可能會選擇拒絕分享該個人數(shù)據(jù)。
使用系統(tǒng)提供的用戶界面來請求訪問用戶的數(shù)據(jù)。當(dāng)用戶想要向應(yīng)用授予訪問他們的數(shù)據(jù)的權(quán)限時,一般會期望看到如下圖所示的系統(tǒng)權(quán)限許可列表。為了確保給用戶提供良好的用戶體驗,應(yīng)避免在應(yīng)用的其他頁面中重復(fù)使用權(quán)限許可列表上的信息。而是應(yīng)該在權(quán)限列表中添加些自定義信息來說明為什么你的應(yīng)用需要訪問特定的數(shù)據(jù)(參閱HKHealthStore Class Feference可獲取更多信息)的原因。確保這些信息簡潔且能清晰地說明你的應(yīng)用是如何利用健康應(yīng)用中的數(shù)據(jù),以及收集這些數(shù)據(jù)的好處。
注意:當(dāng)用戶決定停止與你的應(yīng)用共享數(shù)據(jù)時,讓他們可以在系統(tǒng)設(shè)置中即可完成變更,而不需要通過你的應(yīng)用界面。
不要在你的應(yīng)用界面中使用健康應(yīng)用的圖標(biāo)、圖片或者截圖。和蘋果所有的系統(tǒng)設(shè)計一樣,這些圖像都是受到版權(quán)保護的,不應(yīng)該在你的應(yīng)用中出現(xiàn)。
不要在你的應(yīng)用中使用“HealthKit”這個專用術(shù)語。HealthKit是代表能夠獲取健康應(yīng)用中儲存的數(shù)據(jù)的技術(shù)框架的專用技術(shù)術(shù)語。如果你需要向用戶解釋你的應(yīng)用和健康應(yīng)用中的數(shù)據(jù)的聯(lián)系,請使用“健康應(yīng)用”這個用語。例如,你可以說你的應(yīng)用“將保存信息至健康應(yīng)用中”或“所使用的數(shù)據(jù)是從健康應(yīng)用中獲取的”。
3.13 應(yīng)用內(nèi)購買服務(wù)(In-App Purchase)
應(yīng)用內(nèi)購買服務(wù)使得用戶可以在你的應(yīng)用中、你所設(shè)計的商店中購買到數(shù)字產(chǎn)品。
例如,用戶可以做這些事:
- 將一個應(yīng)用從基礎(chǔ)版本升級到高級版本。
- 每月訂閱新內(nèi)容。
- 購買虛擬商品,比如游戲中的等級或道具。
- 購買并下載新的書籍。
你可以使用StoreKit框架以嵌入的方式將商店添加到你的應(yīng)用中,并且用來支持應(yīng)用內(nèi)購買服務(wù)。當(dāng)用戶進行購買時,StoreKit會連接到應(yīng)用商店進行安全支付,然后再告知你的應(yīng)用以便它可以提供用戶已購買的商品。
重要:應(yīng)用內(nèi)購買服務(wù)只提供支付功能,其他功能由你自己提供,例如向用戶展示商品,解鎖內(nèi)置功能,從你自己的服務(wù)器上下載內(nèi)容等等。當(dāng)然,你所提供的所有商品都必須在應(yīng)用商店注冊過。
想要了解關(guān)于在應(yīng)用中添加商店的技術(shù)要求,請查看In-App Purchase Programming Guide.想要了解更多關(guān)于應(yīng)用內(nèi)購買的商業(yè)需求信息,請查看App Store Resource Center.當(dāng)然,你還應(yīng)該查看相關(guān)許可協(xié)議來確定你的應(yīng)用可以出售哪些商品以及如何提供商品。
遵循以下幾點規(guī)范,可以幫助你設(shè)計出用戶喜歡的購買體驗。
將商店的使用體驗優(yōu)雅地集成到你的應(yīng)用中。在展示商品和處理交易時,給用戶提供一種熟悉、一致的體驗。你一定不希望用戶在訪問你的商店時感覺像是進入別的應(yīng)用。
使用簡單明了的標(biāo)題和說明。最好能讓用戶在掃過一組項目時,可以快速發(fā)現(xiàn)感興趣的內(nèi)容。文案上不要截斷隱晦,簡單直白的語言和標(biāo)題更容易讓用戶理解你所要展示的商品。
不要更改默認(rèn)的確認(rèn)對話框。當(dāng)用戶購買一個商品時,StoreKit會提供一個確認(rèn)對話框(如上圖所示)。這個確認(rèn)對話框可以幫助用戶避免買錯東西,所以不要修改它。
3.14 游戲中心(Game Center)
游戲中心給用戶提供玩游戲、組織多人在線游戲以及其他更多功能。玩家可以使用內(nèi)置的游戲中心應(yīng)用來注冊賬戶、發(fā)現(xiàn)新游戲、添加好友、瀏覽玩家排名和戰(zhàn)績。
作為一名游戲開發(fā)人員,你可以使用GameKit應(yīng)用接口來發(fā)布分?jǐn)?shù)和戰(zhàn)績到游戲中心的服務(wù)器上,在你的游戲頁面中顯示玩家排名,幫助用戶找到其他玩家。想要了解如何將游戲中心集成到你的應(yīng)用中,請查看Game Center Programming Guide.
遵循以下幾點規(guī)范,有助于你的應(yīng)用給用戶提供好的游戲中心體驗。
不要使用自定義的用戶界面來提示用戶登錄到游戲中心。如果用戶在未登錄到游戲中心的情況下打開了一個需要啟用游戲中心的應(yīng)用,系統(tǒng)會自動提醒他們?nèi)サ卿?。所以沒必要自定義一個登錄界面,而且有可能還會讓用戶感到困惑。
一般情況下,使用標(biāo)準(zhǔn)的游戲中心界面。在少數(shù)情況下,可能自定義游戲中心的界面是合理的,但是這樣做會有讓用戶感到困惑的風(fēng)險。標(biāo)準(zhǔn)的游戲中心界面對于iOS和OS X的用戶是熟悉的,而且它會給用戶一種置身于一個龐大游戲社區(qū)的感覺。
允許用戶關(guān)閉語音聊天。有些用戶可能不想在進入游戲時就自動開啟語音聊天,而且大多數(shù)用戶希望在特定情境下可以關(guān)閉語音聊天。
3.15 iAd富媒體廣告(iAd Rich Media Ads)
如果你允許你的應(yīng)用中出現(xiàn)廣告,那么你可以通過用戶瀏覽或者點擊這些廣告獲得收益。(如圖所示,這個底部預(yù)留位置就是用來放置iAd橫幅廣告。)
通過iAd網(wǎng)絡(luò)你可以在你的用戶界面中以特定的視圖投放一則廣告。最初,這種視圖可以用來承載目標(biāo)橫幅廣告,起到引導(dǎo)用戶進入查看全面廣告詳情的作用。當(dāng)用戶點擊該橫幅廣告時,廣告就會執(zhí)行預(yù)先設(shè)定的動作,例如播放一段影片、展示可交互的內(nèi)容,或者啟動Safari打開目標(biāo)網(wǎng)頁。該動作所展示的內(nèi)容可以遮擋住你當(dāng)前的用戶界面,或者使你的應(yīng)用轉(zhuǎn)換到后臺運行。
有三種類型的橫幅廣告供你在應(yīng)用中使用:標(biāo)準(zhǔn)(standard)、中等矩形(medium rectangle) 和全屏(full screen)。所有類型的橫幅雖然在外觀和行為上存在差異,但都提供同樣的功能,就是引導(dǎo)用戶進入廣告。
標(biāo)準(zhǔn)橫幅(standard banner)占用屏幕較少的空間,通常從始至終都可見。你可以選擇在應(yīng)用的哪些頁面展示標(biāo)準(zhǔn)橫幅,并在給這些頁面設(shè)計布局時預(yù)留出空間。
所有的iOS應(yīng)用都可以展示標(biāo)準(zhǔn)橫幅。你可以使用ADBannerView類中的廣告視圖來顯示標(biāo)準(zhǔn)橫幅廣告。
中等矩形橫幅 (medium rectangle banner) 的行為同標(biāo)準(zhǔn)橫幅類似,同樣也可以選擇展示中等矩形橫幅的位置。
中等矩形橫幅只能在iPad的應(yīng)用中使用。你可以使用ADBannerView類中的廣告視圖來顯示中等矩形橫幅廣告。
全屏橫幅 (full screen banner) 會占用屏幕的大部分甚至是全屏空間,并且通常只在應(yīng)用程序流的特定時間或特定位置顯示。你可以選擇使用模態(tài)視圖來顯示橫幅廣告,或者用獨立頁來展示可滾動的廣告內(nèi)容。(在下面的示例中,應(yīng)用提供了一種雜志閱讀的體驗,通過翻頁離開或回到全屏廣告頁面。)
你可以使用ADInterstitialAd類中的廣告視圖在你的應(yīng)用中顯示全屏橫幅廣告。
iAd框架包含了所有類型的橫幅廣告,并且會在右下角顯示iAd的標(biāo)識。iAd框架的設(shè)計固定在屏幕底部時看起來效果最佳。
為了保證廣告無縫植入,并且要提供最好的用戶體驗,可以遵循以下幾點規(guī)范。
將標(biāo)準(zhǔn)橫幅廣告視圖盡量放置在屏幕底部或底部附近。這個位置的差別取決于屏幕底部是否包含欄(bar)以及是什么樣的欄。
將中等矩形橫幅廣告視圖放置在不會干擾內(nèi)容的地方。和標(biāo)準(zhǔn)橫幅一樣,中等矩形橫幅也最好放置在屏幕底部或底部附近。放在底部附近也能減少干擾用戶的可能性。
當(dāng)用戶體驗存在中斷時請使用模態(tài)視圖來展示全屏橫幅廣告。如果你的應(yīng)用中有自然中斷或情景轉(zhuǎn)換,用模態(tài)樣式來展示會更合適。當(dāng)你使用模態(tài)樣式來展示全屏橫幅時(通過用presentFromViewController實現(xiàn)),用戶要么進入廣告,要么關(guān)閉它。出于這個原因,當(dāng)用戶有做出轉(zhuǎn)變的預(yù)期時 (比如完成了一個任務(wù)后) 用模態(tài)視圖的形式來展示比較好。
應(yīng)用的界面視圖進行轉(zhuǎn)場切換時不要使用模態(tài)樣式展示全屏橫幅。如果用戶在使用你的應(yīng)用時會頻繁的進行屏幕切換操作,例如雜志翻頁或翻閱一些畫冊圖片合集,此時使用非模態(tài)的形式會更合適。當(dāng)你使用非模態(tài)來顯示全屏橫幅時(通過使用presentInView實現(xiàn)),可以在用戶界面中保留欄 (bar) 使得用戶可以通過應(yīng)用中的控件進入或退出廣告。同其他橫幅廣告一樣,點擊全屏橫幅廣告也會觸發(fā)iAd體驗,但是如果條件允許的話,你的應(yīng)用也可以對橫幅廣告區(qū)域支持其他手勢操作 (比如拖動或滑動)。
確保使用合適的動畫效果來顯示和隱藏非模態(tài)的全屏橫幅視圖。例如,雜志閱讀應(yīng)用可以用和雜志翻頁一樣的動畫效果。
確保橫幅廣告在應(yīng)用中出現(xiàn)的時間和位置是合理的。用戶只有在不覺得廣告會打擾他們正常的工作流程時才有可能去體驗iAd.這點對于游戲這樣的沉浸式應(yīng)用尤其重要:你肯定不想將橫幅放置在影響用戶玩游戲的位置。
避免將橫幅放置在用戶只會一掃而過的頁面。最好不要將橫幅廣告放置在用戶會快速略過的頁面,比如用戶正要深入挖掘或前往他們所關(guān)注的內(nèi)容。通常用戶在一個頁面停留至少1、2秒后才有可能會點擊廣告。
盡可能的支持雙向展示橫幅廣告。最好讓用戶在使用應(yīng)用時不必旋轉(zhuǎn)設(shè)備就能瀏覽廣告。當(dāng)然,支持雙向也能給你的廣告提供更大的展示區(qū)域。想要了解如何確保轉(zhuǎn)換方向時橫幅廣告能正常響應(yīng),請查看iAd Programming Guide.
不要讓標(biāo)準(zhǔn)或中等矩形橫幅廣告滾出屏幕。如果你的應(yīng)用需要滾動來展示更多內(nèi)容,確保橫幅廣告一直固定在它的位置上。
當(dāng)用戶瀏覽或與廣告進行交互時,暫停那些吸引用戶注意力或需要操作的活動。當(dāng)用戶選擇瀏覽廣告時,他們不想因此錯過應(yīng)用中正發(fā)生的事件,也同樣不想讓應(yīng)用打斷廣告體驗。一個好的經(jīng)驗方法是像應(yīng)用程序轉(zhuǎn)入后臺運行那樣暫停當(dāng)前活動。
除非有特殊情況,否則不要中斷廣告。一般情況下,當(dāng)用戶瀏覽并與廣告進行交互時,應(yīng)用還是會繼續(xù)運行并接收事件,所以也有可能突然出現(xiàn)一個事件需要獲得用戶的注意力。然而,需要打斷廣告的場景其實非常少。有一種情景是有的應(yīng)用會提供互聯(lián)網(wǎng)語音協(xié)議服務(wù)(VoIP).在這種應(yīng)用中,有電話接入時可能會取消正在運行的廣告。
注意:取消廣告可能會對應(yīng)用能接受的廣告類型以及能獲取的收益有不好的影響。
3.16 無線打印 (AirPrint)
用戶可以通過AirPrint無線打印應(yīng)用中的內(nèi)容,還可以使用打印中心應(yīng)用檢查打印任務(wù)。
你可以利用內(nèi)置的支持程序來打印圖片和PDF文件,或者可以使用特定的打印程序接口來完成自定義的格式設(shè)置和渲染設(shè)置。iOS可以處理打印機的發(fā)現(xiàn)、任務(wù)排序以及在指定打印機上執(zhí)行打印任務(wù)。
通常來講,用戶想要打印文件的時候,只需要點擊應(yīng)用中的標(biāo)準(zhǔn)動作按鈕(Action button)。當(dāng)他們在界面視圖中選擇了要打印的項目后,可以接著選擇打印機,設(shè)置打印屬性,最后點擊打印按鈕開始打印。
打印中心應(yīng)用是一個只有在處理打印任務(wù)時才可見的后臺系統(tǒng)應(yīng)用,用戶可以用它來查看打印任務(wù)。用戶可以在打印中心瀏覽當(dāng)前打印隊列,查看某個打印任務(wù)的詳情,還可以取消某個任務(wù)。
只需添加少量代碼就可以支持基本打印功能 (想要了解在代碼中添加打印功能,請查看Drawing and Printing Guide for iOS).想要確保好的打印體驗,可以遵循以下幾點規(guī)范:
使用系統(tǒng)提供的動作按鈕。用戶對系統(tǒng)提供的按鈕的含義和行為都很熟悉,所以盡可能的使用系統(tǒng)動作按鈕。如果你的應(yīng)用沒有工具欄或?qū)Ш綑?,那就要另?dāng)別論了。在這種情況下,你就需要自己設(shè)計一個可以出現(xiàn)在應(yīng)用主界面的打印按鈕,因為動作按鈕只能在工具欄和導(dǎo)航欄中使用。
在當(dāng)前情境下打印操作是基本功能時才顯示打印項(Print item).如果當(dāng)前情境并不適合打印,或者用戶并不想打印,就不要在由動作按鈕顯示的視圖中將打印項顯示出來。
合適的話,給用戶提供更多打印選項。例如,讓用戶設(shè)置打印頁碼范圍或打印份數(shù)。
如果用戶不能打印,則不要顯示特定的打印用戶界面。在向用戶展示有打印項的界面前,確保用戶的設(shè)備是支持打印的。想要了解如何在代碼中實現(xiàn),請查看UIPrintInteractionController Class Reference.
3.17 訪問用戶數(shù)據(jù)(Accessing User Data)
位置服務(wù)允許應(yīng)用獲取用戶當(dāng)前大致的地理位置,設(shè)備指向的方向以及用戶移動的方向。其他系統(tǒng)服務(wù),例如通訊錄、日歷、備忘錄和相冊等,同樣也允許應(yīng)用訪問用戶存儲在里面的數(shù)據(jù)。
雖然獲取了用戶數(shù)據(jù)的應(yīng)用能帶來一定的方便,但還是需要為用戶提供維持信息私密性的功能。例如,用戶喜歡應(yīng)用自動給內(nèi)容加上位置標(biāo)簽,或者可以找到附近的好友,但用戶也需要能在不想分享位置的時候關(guān)閉這些功能。(想要學(xué)習(xí)如何給應(yīng)用增加獲取位置功能,請參閱Location and Maps Programming Guide.)
以下幾點可以幫助您以用戶不反感的方式獲取用戶數(shù)據(jù)。
確保使用戶理解分享私人數(shù)據(jù)的原因。如果沒有明顯的需要,用戶自然會對私人信息的請求感到懷疑。為了避免用戶反感,確保在用戶使用明顯需要個人信息的功能時再進行提醒。例如,即使沒有打開位置服務(wù)用戶也可以使用地圖,但是在用戶使用定位或?qū)Ш焦δ軙r就會有提醒。
應(yīng)用需要個人信息的原因不明顯時向用戶做出解釋。你可以在提醒框中給出文字性的描述,例如“這個應(yīng)用需要訪問你的通訊錄”或者“是否允許應(yīng)用獲取你的地理位置?”。這些文案最好明確且有禮貌以讓用戶無壓力的理解為什么需要訪問他們的信息。
講述原因的文案應(yīng)該遵循以下原則:
- 不要包含你的應(yīng)用名稱,因為系統(tǒng)提供的提醒框已經(jīng)包含了。
- 清楚地描述你的應(yīng)用為什么需要這些數(shù)據(jù)。如果可以的話,你也可以解釋不會用這些數(shù)據(jù)做什么。
- 使用以用戶為中心的術(shù)語并且進行本地化。
- 在易于理解的情況下越短越好。盡可能避免超過一句話。
- 使用句式大小寫(sentence-style capitalization).(句式大小寫指的是第一個單詞大寫,除了專有名詞和專有形容詞以外的詞都小寫。)
只有當(dāng)你的應(yīng)用沒有用戶數(shù)據(jù)就無法提供基礎(chǔ)服務(wù)時,才在一開始就征求用戶的許可。如果你的應(yīng)用在知道了用戶私人信息后才能提供主要功能是顯而易見的話,用戶不會因此覺得煩擾。
避免在用戶選擇需要數(shù)據(jù)的功能之前調(diào)用觸發(fā)提醒框的程序。這樣,就可以避免用戶疑惑為什么在使用不需要私人數(shù)據(jù)的功能時有請求提醒。(注意,檢查用戶位置服務(wù)的設(shè)置并不會觸發(fā)提醒。)
檢查位置服務(wù)的設(shè)置來避免觸發(fā)沒必要的提醒。你可以使用核心位置的程序接口來實現(xiàn)(想要學(xué)習(xí)如何做,請參閱Core Location Framework Reference).使用這些知識,可以盡可能地在使用需要位置信息的功能時才進行提醒,或者完全避免提醒。
3.18 快速查看(Quick Look)
通過使用Quick Look,用戶可以在你的應(yīng)用內(nèi)預(yù)覽文件,即使你的應(yīng)用是打不開這個文件的。舉例來說,你可以允許用戶預(yù)覽一些從網(wǎng)站上下載或從其他來源獲得的文件。
想要學(xué)習(xí)如何在應(yīng)用中加入Quick Look文件預(yù)覽功能,請參閱Document Interaction Programming Topics for iOS.
在你的應(yīng)用內(nèi)預(yù)覽文件之前,用戶可在你定制的視圖中查看該文件的信息。例如,用戶從一封郵件中下載了附件之后,郵件應(yīng)用(Mail)會在郵件中使用定制的視圖展示文件的圖標(biāo)、標(biāo)題和大小。用戶可以通過點擊它來預(yù)覽文件。
你可以在應(yīng)用中用一個新的視圖來展示文件預(yù)覽,或者使用全屏模態(tài)視圖。展示的形式取決于你的應(yīng)用運行在什么設(shè)備上。
在iPad上使用模態(tài)視圖來顯示文件預(yù)覽。iPad的大屏幕適合在一個方便用戶離開的沉浸式環(huán)境中展示文件預(yù)覽??s放操作(zoom transition)很適合展示預(yù)覽。
在iPhone上使用專用的視圖,最好是導(dǎo)航視圖來顯示文件預(yù)覽。這樣可以使用戶在應(yīng)用情境中通過導(dǎo)航進入文件預(yù)覽,不至于迷失。雖然也可以在iPhone應(yīng)用中使用模態(tài)顯示,但不推薦這樣做。(注意縮放操作在iPhone上并不適用。)
另外要注意的是,在導(dǎo)航視圖中顯示文件預(yù)覽意味著允許Quick Look在導(dǎo)航欄上放置特定的預(yù)覽控件。(如果你的視圖中包含工具欄,Quick Look會將預(yù)覽控件放在工具欄上。)
相關(guān)閱讀:
iOS 9人機界面指南(一):UI設(shè)計基礎(chǔ)
iOS 9人機界面指南(三):iOS 技術(shù) (上)
iOS 9人機界面指南(三):iOS 技術(shù) (下)
來源:騰訊ISUX
- 目前還沒評論,等你發(fā)揮!