通过键盘应用程序或iMessage应用程序截取屏幕截图

时间:2017-04-07 22:39:47

标签: ios iphone screenshot uikeyboard imessage

是否可以通过编程方式从键盘应用程序或iMessage应用程序中截取屏幕截图?如果是这样,怎么样?

编辑:澄清一下,我想从键盘/ iMessage应用程序中截取整个屏幕(即当前打开的应用程序)的屏幕截图。

2 个答案:

答案 0 :(得分:5)

由于此操作会对使用第三方键盘或iMessage应用程序的客户的隐私造成毁灭性打击,因此无法以这种方式收集个人数据的屏幕截图,原因很明显。

该问题明确要求采用一种方法来执行针对App Store Review Guidelines, Section 5.1.1 Data Collection and Storage的潜在欺诈行为:

  

(iii)使用其应用程序偷偷发现的开发人员   密码或其他私人数据将从开发人员中删除   程序

此问题已被相应标记。

答案 1 :(得分:-1)

使用此代码使用UIToolBar

截取屏幕截图
extension UIViewController: UITextFieldDelegate{
    func addToolBar(textField: UITextField){
        var toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.Default
        toolBar.translucent = true
        toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
        var screenshotButton = UIBarButtonItem(title: "Screenshot", style: UIBarButtonItemStyle.Done, target: self, action: "donePressed")
        var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelPressed")
        var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        toolBar.userInteractionEnabled = true
        toolBar.sizeToFit()

        textField.delegate = self
        textField.inputAccessoryView = toolBar
    }
    func screenshotButton(){
            func captureScreen() -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, UIScreen.main.scale)
        view.layer.render(in: UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
    }
    func cancelPressed(){
        view.endEditing(true) // or do something
    }
}

虽然我仍然需要在我的所有文本字段中调用以下代码。

override func viewDidLoad() {
    super.viewDidLoad()
    addToolBar(addressField)
}