之前在360的App里看到一個(gè)有趣的東西叛买,就是當(dāng)應(yīng)用進(jìn)入后臺(tái)后再查看后臺(tái)程序的時(shí)候,程序的截圖是一個(gè)自定義的圖片,而不是App的截圖如暖,感覺(jué)還蠻有用的(可以做廣告或者自定義)。其實(shí)要實(shí)現(xiàn)這個(gè)效果很簡(jiǎn)單忌堂,因?yàn)橄到y(tǒng)把截圖存放在App的沙盒里面的盒至,所以我們只需要在App進(jìn)入后臺(tái)以后將原來(lái)截圖替換掉就可以了
直接看效果
record.gif
關(guān)鍵代碼如下:
var downscaledPath = NSHomeDirectory() +
"/Library" +
"/Caches" +
"/Snapshots" +
"/\(NSBundle.mainBundle().bundleIdentifier!)" + "/downscaled"
var existedImageName:String? {
let fileMgr = NSFileManager.defaultManager()
do
{
return try fileMgr
.contentsOfDirectoryAtPath(downscaledPath)
.filter {
return $0.hasSuffix("png")
}.first
} catch let e {
print(e)
return nil
}
}
var replaceImageData:NSData {
let path = NSBundle.mainBundle().pathForResource("notice.jpg", ofType: nil)!
return NSData(contentsOfFile: path)!
}
func replaceExistsedImage() {
guard let _ = existedImageName else {
return
}
replaceImageData.writeToFile(downscaledPath + "/\(existedImageName!)", atomically: true)
}
func applicationDidEnterBackground(application: UIApplication) {
delay(0.5) {
self.replaceExistsedImage()
}
}
downscaledPath
:系統(tǒng)存放App截圖的目錄
existedImageName
:系統(tǒng)存放具體的截圖
replaceImageData
:需要替換系統(tǒng)截圖的圖片
當(dāng)然這只是個(gè)原理Demo, 我們還需要針對(duì)不同的設(shè)備提供不同的圖片,而且還要判斷截圖時(shí)候的設(shè)備橫縱方向做一些其他操作