#ios #swift #swift3 #xcode8 #uiactivityviewcontroller
#iOS #swift #swift3 #xcode8 #uiactivityviewcontroller
Вопрос:
Я хочу поделиться файлом URL, который был создан в приложении, и текстом. Но, похоже, он может обмениваться только текстом, а не какими-либо данными, такими как URL или UIImage
. Код, который я использую:
let sharedVideo = Video(Title: _data[1], VideoID: _data[0], Duration: _data[3], ViewCount: _data[2])
let sharedURL = VideoManager.exportData(video: sharedVideo)
let shareItems:Array = [sharedURL,"check this out baby!"] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
Также я использую UIImage
объект вместо sharedURL, чтобы посмотреть, есть ли у него проблемы с URL или нет.
Это не работает даже с файлом изображения. Когда я нажимаю на кнопку «Поделиться» внутри UIActivityViewController
, это работает только для текста, без URL-адреса или изображения. Я использую Swift 3 в Xcode 8.
Спасибо.
PS: Я уверен в отношении объекта sharedURL, что он не равен нулю и не определен.
Комментарии:
1. вы хотите поделиться URL-адресом или текстом в социальных сетях и своем приложении?
2. @seggy Я хочу поделиться текстом с URL-адресом в социальных приложениях, а также отправить его другим пользователям устройств iOS. Спасибо
3. о, чем вы можете следить за ответом @Sanjeet verma
Ответ №1:
Попробуйте это:
@IBAction func btnExport(sender: AnyObject)
{
let someText:String = "Hello want to share text also"
let objectsToShare:URL = URL(string: "http://www.google.com")!
let sharedObjects:[AnyObject] = [objectsToShare as AnyObject,someText as AnyObject]
let activityViewController = UIActivityViewController(activityItems : sharedObjects, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
activityViewController.excludedActivityTypes = [ UIActivityType.airDrop, UIActivityType.postToFacebook,UIActivityType.postToTwitter,UIActivityType.mail]
self.present(activityViewController, animated: true, completion: nil)
}
Комментарии:
1. Сначала я попробовал код, который вы используете image для совместного использования, и он отлично работает. Теперь я собираюсь попробовать ваш отредактированный код, чтобы посмотреть, работает ли он для URL или нет. Большое вам спасибо.
2. @BehdadAhmadi я рад помочь вам, если мой ответ приемлем, тогда поддержите меня.
3. Спасибо, приятель, твой ответ работает, но снова сбой с моим собственным настроенным URL. Мой URL состоит из NSDictionary, который содержит 4 строки, 1 строку в кодировке base64 и объект данных. Я думаю, что что-то не так с моим настроенным URL. Однако спасибо, что уделили мне свое время.
4. @BehdadAhmadi Счастливого кодирования:)
5. Большое вам спасибо!
Ответ №2:
Упрощенное решение, работающее с Swift 5
let url = URL(string: shareUrlString)!
let text = "Some text that you want shared"
let activity = UIActivityViewController(activityItems: [url, text], applicationActivities: nil)
present(activity, animated: true)