![](/img/trans.png)
[英]How can I add a Number and Decimal keyboard into my Custom Keyboard on iOS8?
[英]How can I check does my ios8 custom keyboard extension have open access?
在我的ios 8鍵盤擴展中,我想檢查用戶是否給我的鍵盤打開訪問權限。 但我找不到任何API。 Swiftkey和其他自定義鍵盤以某種方式解決了這個問題
我認為這是一種更簡單的方法(無需創建容器):
- (BOOL) isOpenAccessGranted
{
if ([UIPasteboard generalPasteboard])
return YES;
return NO;
}
沒有API,但如果您啟用了應用程序組訪問權限,則可以嘗試檢查是否能夠讀取/寫入該文件夾。 它應該給你一個權限錯誤訪問未啟用。
用這個,
-(BOOL)isOpenAccessGranted
{
NSFileManager *filemanager = [NSFileManager defaultManager];
NSString *containerPath = [[filemanager containerURLForSecurityApplicationGroupIdentifier:@"/***YOUR APP GROUP ID***/"] path];
NSError *err;
[filemanager contentsOfDirectoryAtPath:containerPath error:&err];
if(err != nil)
{
NSLog(@"Full Access: Off");
return NO;
}
NSLog(@"Full Access On");
return YES;
}
在iOS10測試版中更改了粘貼板API
迅速:
func isOpenAccessGranted() -> Bool {
let originalString = UIPasteboard.general.string
UIPasteboard.general.string = "TEST"
if UIPasteboard.general.hasStrings {
UIPasteboard.general.string = originalString
return true
}else{
return false
}
}
在這里找到了這個省錢的答案
我測試了一些應用程序並且完美無缺!
您可以使用此功能檢查您的自定義鍵盤擴展是否具有開放訪問權限:
func isOpenAccessGranted() -> Bool{
if #available(iOS 10.0, *) {
let originalString = UIPasteboard.general.string
UIPasteboard.general.string = "Sour LeangChhean"
if UIPasteboard.general.hasStrings {
UIPasteboard.general.string = originalString ?? ""
return true
}else{
UIPasteboard.general.string = ""
return false
}
} else {
// Fallback on earlier versions
if UIPasteboard.general.isKind(of: UIPasteboard.self) {
return true
}else{
return false
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.