[iOS] 背景模式震動
原本想使用區域推播(Local Notification)來提醒使用者,遇到需求只要震動而不要有介面顯示,可以怎麼做呢?原來只要開背景模式(Required background modes)的「App plays audio or streams audio/video using AirPlay」,即可在偵測到Beacon同時震動!
可是送審會不會有問題?畢竟文檔上所描述的使用方式我都沒有實現⋯⋯
原本想使用區域推播(Local Notification)來提醒使用者,遇到需求只要震動而不要有介面顯示,可以怎麼做呢?原來只要開背景模式(Required background modes)的「App plays audio or streams audio/video using AirPlay」,即可在偵測到Beacon同時震動!
可是送審會不會有問題?畢竟文檔上所描述的使用方式我都沒有實現⋯⋯
最近在做遊戲,是個抓神魔獸的小遊戲,我們想要加入背景音樂,讓玩家能融入遊戲情境之中,以增加玩家黏著度。
那麼要如何播放背景音樂 (Play Background Music)呢?
背景獲取 (Background Fetch)可用在:有個情境是想在使用者開啟App前,就將所需要的資料從網路載入完畢,當使用者打開App後就會發現,顯示的資料都是最新的,而不用再重新整理來獲取最新資料。
看前人教學得知有三件事情要做:
step1:
專案Capabilities設定Background Modes打開Background fetch。
/** Theme: Background Fetch IDE: Xcode 8 Language: Objective C Date: 106/06/06 Author: HappyMan Blog: https://cg2010studio.wordpress.com/ */ // step2 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]; } // step3 -(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"performFetchWithCompletionHandler"); }
若要測試是否能運作,在工具列操作Debug的Simulate Background Fetch,點下去後原本App在前景就會強制跑到背景,若有在performFetchWithCompletionHandler設中斷點,就會發現App會執行這函式。
至於觸發時機,就要看系統怎麼判定你的App要多久喚醒一次,若它發現使用者時常在晚上九點開啟你的App,也許系統就會在晚上八點五十五分喚醒你的App,於是你可以執行載入最新資料的動作。
有時候想要把一張影像去除背景,我都會開啟影像處理軟體,慢慢地用魔術棒把我要的部份的輪廓給圈出來,可是這樣子太過於麻煩,若背景只有單純的顏色,而我要的部份沒有那顏色,就可以顏色遮罩(Color Mask)來取得我要的部份。
這圖是我過濾某個範圍顏色後的效果,呈現黑色的部份就是被過濾掉的顏色囉~
HappyMan・迴響