我内置了两个应用程序图标(免费和高级),在应用程序内购买成功完成后,是否可以以编程方式将免费图标替换为高级图标?
对于这种情况有一个新的解决方案。
您可以使用
setAlternateIconName(_:completionHandler:)
iOS 10.3 随 xcode 8.3 一起发布。
10.3+ https://developer.apple.com/reference/uikit/uiapplication/2806818-setalternateiconname
Update:
用法非常简单,关键是找出 plist 用法并注意你不能从 xcassets 加载资源(至少对我不起作用)。您需要将图标文件添加到项目中,并且为了质量更喜欢 180x180 图像。
您需要使用“图标文件(iOS 5)”,新的图标文件不起作用。
最后一件事,当您更改按钮上的图标时,单击它会弹出一个警报窗口,显示“您已更改“IcoTest”的图标。”
//ViewController.swift
@IBAction func ico1Click(_ sender: Any) {
if UIApplication.shared.supportsAlternateIcons{
UIApplication.shared.setAlternateIconName("Icon2", completionHandler: { (error) in
print(error ?? "")
})
}else{
print("NO NO")
}
}
//Info.plist
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>Icon1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>alternater1_180x180</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>Icon2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>alternater2_180x180</string>
</array>
</dict>
</dict>
</dict>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)