【问题标题】:Unable to post QR Code Image on Facebook with swift无法使用 swift 在 Facebook 上发布 QR 码图像
【发布时间】:2015-03-04 11:23:22
【问题描述】:

我正在创建一个二维码阅读器应用程序,一旦创建了二维码图像,用户就可以将其发布到 Facebook 上。这是我的代码:

import UIKit
import Social
import MobileCoreServices

class NextViewController: UIViewController {

var userTextString : String?
@IBOutlet weak var QRCodeImage: UIImageView!
var tasteImage = UIImage(named: "Back.jpg")
@IBOutlet weak var userText: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Share", style: UIBarButtonItemStyle.Bordered, target: self, action: "ShareIt")
    self.userText.text = self.userTextString
    var qrText = self.userTextString
    CGSize(width: 300, height: 300)
    self.QRCodeImage.image = {
        var qrCode = QRCode("\(qrText)")!
        qrCode.size = self.QRCodeImage.bounds.size
        return qrCode.image
        }()
}

func ShareIt(){

            var activityIteams : [AnyObject]?

            if QRCodeImage.image != nil{
                activityIteams = [userText.text as String!, self.QRCodeImage.image as UIImage!]
            }else{
                activityIteams = [userText.text as String!]
            }
            println(activityIteams)
            let activityController = UIActivityViewController(activityItems: activityIteams!, applicationActivities: nil)
            self.presentViewController(activityController, animated: true, completion: nil)
     }
}

但我无法使用此代码在 Facebook 上发布任何内容,如果我尝试仅发布文本,则它可以工作,但图像无法正常工作,我在控制台中得到了这个:

2015-03-04 16:45:18.128 testing[11389:160922] plugin com.apple.share.Facebook.post interrupted

如果我尝试另一个已经存储到项目中的图片,我可以轻松地将其发布到 facebook 但我不知道我的二维码图片有什么问题。

这是我的示例项目以获取更多信息。

https://github.com/DharmeshKheni/QR-Code

【问题讨论】:

    标签: facebook swift uiimageview qr-code uiactivityviewcontroller


    【解决方案1】:

    我得到了类似这样的解决方案:

    首先我将图像保存到文档目录,然后从该目录中检索该图像,这对我来说很好用是我的更新代码。

    import UIKit
    import Social
    import MobileCoreServices
    
    class QRImage: UIViewController {
    
    var userTextString : String?
    @IBOutlet weak var QRCodeImage: UIImageView!
    @IBOutlet weak var userText: UILabel!
    var imageView = UIImageView()
    override func viewDidLoad() {
        super.viewDidLoad()
    
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Share", style: UIBarButtonItemStyle.Bordered, target: self, action: "ShareIt")
        self.userText.text = self.userTextString
        var qrText = self.userTextString
        CGSize(width: 300, height: 300)
    
        self.QRCodeImage.image = {
            var qrCode = QRCode("\(qrText)")!
            qrCode.size = self.QRCodeImage.bounds.size
    
            return qrCode.image
            }()
        self.createThumBil()
    }
    
    func ShareIt(){
    
        var activityIteams : [AnyObject]?
    
            if QRCodeImage.image != nil{
                activityIteams = [userText.text as String!, self.imageView.image as UIImage!]
            }else{
                activityIteams = [userText.text as String!]
            }
            println(activityIteams)
            let activityController = UIActivityViewController(activityItems: activityIteams!, applicationActivities: nil)
            self.presentViewController(activityController, animated: true, completion: nil)
    }
    
    func getImage(){
    
        var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
        let getImagePath = paths.stringByAppendingPathComponent("QRCode.png")
        self.imageView.image = UIImage(contentsOfFile: getImagePath)
    }
    
    func createThumBil(){
    
        let originalImage : UIImage = self.QRCodeImage.image!
        let destinationSize : CGSize = CGSizeMake(200, 200)
        UIGraphicsBeginImageContext(destinationSize)
        originalImage.drawInRect(CGRectMake(0, 0, destinationSize.width, destinationSize.height))
        let newImage : UIImage = UIGraphicsGetImageFromCurrentImageContext()
        let thumbNailimageData : NSData = UIImagePNGRepresentation(newImage)
        UIGraphicsEndImageContext()
        if let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) {
            if paths.count > 0 {
                if let dirPath = paths[0] as? String {
                    println(dirPath)
                    thumbNailimageData.writeToFile(dirPath.stringByAppendingPathComponent("QRCode.png"), atomically: true)
                }
            }
        }
        self.getImage()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多