私は前に電報のAPIを使用したことがありませんが、何あなたがする必要があるだろうことはあなたの地元から曲を取得するための情報を格納しますカスタムUIActivity
を作成し、これを使用することですUIActivity
の選択に反応して、テレグラムAPIに曲データを呼び出します。
1)UIActivity
をサブクラス化してカスタムアクティビティを作成します。
2)
class YourCustomActivity: UIActivity {
var title: String!
var image: UIImage?
var type:UIActivityType!
var path: String!
init(title: String, image: UIImage?, path: String) {
super.init()
self.path = path
self.image = image
self.title = title
type = UIActivityType(rawValue: title)
}
override var activityType: UIActivityType {
return self.type
}
override var activityTitle: String {
return self.title
}
override var activityImage: UIImage? {
return self.image
}
var activityCategory: UIActivityCategory {
return .share
}
override func canPerform(withActivityItems activityItems: [Any]) -> Bool {
return true
}
override func prepare(withActivityItems activityItems: [Any]) {
}
override func perform() {
}
}
はあなたの電報
UIActivity
をインスタンス化するクラスのメソッドを作成します。
class func getTelegramActivitiesFor(path: String) -> [YourCustomActivity] {
// You have to supply your own "Telegram_Logo"
return [YourCustomActivity(title: "Telegram", image: UIImage.init(named: "Telegram_Logo", in: Bundle.main, compatibleWith: nil), path: path)]
}
3)は、あなたの電報の活動であなたのUIActivityController
をインスタンス化します。
let yourSongPath = "" // Get path to your song in documents
let activities = YourCustomActivity.getTelegramActivitiesFor(path: yourSongPath)
let activityVC = UIActivityViewController(activityItems: activityImages, applicationActivities: activities)
activityVC.modalPresentationStyle = .popover
activityVC.popoverPresentationController?.barButtonItem = actionButton
present(activityVC, animated: true, completion: nil)
4)YourCustomActivity
は、そのperform()
方法を実行する選択された場合。ここでは、曲のパスのデータを取得し、Telegramに送信するための呼び出しを行います。
override func perform() {
do {
let songData = try Data(contentsOf: self.path)
// Make the API call to Telegram with your song's data...
}
catch {
print("UNABLE TO RETRIEVE SONG")
}
}