[iOS] Quick Action (快速動作)
隨著iPhone 6s和iPhone 6s +的發表,3D Touch功能開始展現其魅力,讓我們能夠在不開啟App時,就能決定開啟後要做什麼事情!透過在手機桌面上重壓App icon,將會跳出選單給使用者點擊。
跟先前發表的Force Touch不一樣的是,3D Touch能夠衡量按壓的程度。可以這麼解釋:前者只能0和1兩種狀態,後者則可以0-1隨意程度的數值。

隨著iPhone 6s和iPhone 6s +的發表,3D Touch功能開始展現其魅力,讓我們能夠在不開啟App時,就能決定開啟後要做什麼事情!透過在手機桌面上重壓App icon,將會跳出選單給使用者點擊。
跟先前發表的Force Touch不一樣的是,3D Touch能夠衡量按壓的程度。可以這麼解釋:前者只能0和1兩種狀態,後者則可以0-1隨意程度的數值。

在沒有架設伺服器的情況下,我採用Dropbox,只要把檔案同步到雲端,透過分享連結,就能讓客戶下載App測試版本喔!
透過第三方平台發版本可參考:發佈版本給使用者測試 (Crashlytics Distribution for User Test) 。

首先要準備四個檔案:
最近在研究iOS實用的ORM (Object-Relational Mapping),翻成中文就是物件關係對映,還不是很懂?直接說是資料庫 (Database),這樣豁然開朗了嗎?儘管實際上定義有所差異,不過為了好上手,總是會想類比我們熟悉的目標。

要研究總有個方向,在Github上找到最多人給星的FMDB,發展至今已經有9852顆星,想必它之所以受到青睞,是因為它把資料庫的事情簡單化了!
FMDB是架構在SQLite發展出來的套件,由於SQLite在iOS上的使用不是平易近人,於是就有人想要改造它,促使今日FMDB的誕生呢!
App和Web雙向溝通:
一直是我們想要達成的目標,而先前的兩篇文章:
也就分別實現雙向溝通,只是過程不夠直接,且會衍生一些毛問題。以至於有開源WebViewJavascriptBridge已有6000多顆星,儘管我沒用過XD~
這套件自我介紹:
An iOS/OSX bridge for sending messages between Obj-C and JavaScript in UIWebViews/WebViews
iOS 7以後,SDK發展出JavaScriptCore Framework,Objective C與Javascript的溝通變得更便利!
記得先前有研究過從WebView取得回傳值,這是當我們知道web中有可以執行的函式,而iOS的WebView能夠呼叫。假使若不知道怎麼辦?只能猜測?好像也只有這個辦法,當然若想串接就要雙方講好規則,無論被動還是主動都可以實現!
這次想做從WebView被動取得資料,注意這裡是被動,情境是在使用者點擊按鈕,iOS的WebView會收到請求,此時就可以拆解請求的URL來進行接續動作。

想要追蹤、統計、分析用戶,自然離不開用戶唯一識別碼,這是每個公司都會面臨的問題。在歷史上唯一識別碼很多,如UDID、MAC位址、OpenUDID等,這裡就不再一一介紹它們是怎麼被淘汰,現在好用的只剩下了IDFA、IDFV、UUID+keyChain。

我每次送審App,最後itunes connect都會問,有沒有使用IDFA,若沒有正確回答,那麼這個版本就要被拒絕!(除了log,我不知道apple審核員還會怎麼查證)可見這個議題是多麽重要,所以有必要瞭解一下!
自從被Facebook收購的Parse三月宣布一年後關門大吉後,許多行動開發者陸續在找替代方案,於是OneSignal推播服務就出現在我面前XD~

儘管OneSignal只有推播服務,那也足夠我們開發者使用!不然萬一它像Parse有龐大的資料庫的話,哪天還得想辦法備份轉移呢~據說它支援至少14種開發平台。
看這標題應用查詢格式 (Application Query Schemes)不知在表達啥咪,那就用白話文解釋⋯⋯就是我們的App想要跳轉到他人App時,所要遵從的規範。在iOS 9之後Apple更改遊戲規則,必須在info.plist注明我們想要跳轉的格式,不然程式就會報錯:
This app is not allowed to query for scheme
比如我想要跳轉到Google Map App,我會在程式碼中設定開頭:
comgooglemaps://
iOS 9以後就要在info.plist加入:

果真加入後立馬編譯執行,就能跳轉到Google Map App,而不是到App Store App的Google Map App頁面呢~
參考:[iOS] 使用Google Map導航、[iOS] 使用Google Map顯示地點、Google SDK –
Google 地圖 URL 配置、canOpenUrl – This app is not allowed to query for scheme instragram iOS9。
有時候需要透過程式取得Youtube影片的標題,在網路上找了許久卻沒找到直接可用的API,方法是有很多種,比如使用Youtube的SDK,然而就要申請帳號來獲取API Key,明明是很簡單的任務,卻要大費周章來實現,最後我選擇較為簡潔的做法!
透過以下的Url Template,先取得該影片的所有資料,如下列網址帶入Video ID,我們將可取回一大串String。
字串截圖:

我們的目標字串為:
title=%E9%96%BB%E5%A5%95%E6%A0%BC+Janice+Yan+%5B+%E4%B9%9F%E5%8F%AF%E4%BB%A5+%5D+%28%E9%9B%BB%E5%BD%B1%E3%80%8C%E8%BF%BD%E5%A9%9A%E6%97%A5%E8%A8%98%E3%80%8D%E6%8F%92%E6%9B%B2%29+%E7%89%87%E8%8A%B1%E7%89%88Music+Video
我先找「title=」字眼,後面的字串到「&」之前,就是我要的標題。中文字被轉成百分比+字母(stringByRemovingPercentEncoding),所以要轉回去,最後還要取代掉「+」為「 (空白鍵)」。
Objective C可以這樣來剖析(Parse):
/**
Theme: fetch Title of Video from Youtube
IDE: Xcode 7
Language: C++
Date: 105/05/06
Author: HappyMan
Blog: https://cg2010studio.wordpress.com/
*/
NSString *title = [[[[[[string componentsSeparatedByString:@"title="] lastObject] componentsSeparatedByString:@"&"] firstObject] stringByRemovingPercentEncoding] stringByReplacingOccurrencesOfString:@"+" withString:@" "];
我找的Video ID是PZGwZwGQTlk,經過上述程式碼剖析、解碼、取代,就得到追婚日記的插曲標題:閻奕格 Janice Yan [ 也可以 ] (電影「追婚日記」插曲) 片花版Music Video。

這裡要注意的是,並不是所有影片資料字串都會有title=喔!若有title=會出現在不一樣的位置,我找到的這個例子剛好是在最前面!
.
HappyMan・迴響