Пустой прозрачный SLComposeViewController с использованием UIActivityController - PullRequest
0 голосов
/ 04 мая 2020

Итак, у меня есть сценарий. Пользователь установил Whatsapp в свой телефон. Но в настоящее время не вошли в систему.

При совместном использовании из приложения я представляю UIActivityViewController с форматированным текстом для обмена. Поделиться отлично работает на почту, заметки и т. Д. c. пока пользователь не выберет Whatsapp. После выбора WhatsApp из UIActivityViewController контроллер активности закрывается, а остальная часть приложения перестает отвечать на запросы.


        let activityViewController = UIActivityViewController(activityItems: [activityItem], applicationActivities:nil)

        // Anything you want to exclude
        activityViewController.excludedActivityTypes = [
            UIActivity.ActivityType.postToWeibo,
            UIActivity.ActivityType.print,
            UIActivity.ActivityType.assignToContact,
            UIActivity.ActivityType.saveToCameraRoll,
            UIActivity.ActivityType.addToReadingList,
            UIActivity.ActivityType.postToFlickr,
            UIActivity.ActivityType.postToVimeo,
            UIActivity.ActivityType.postToTencentWeibo,
            UIActivity.ActivityType.airDrop,
            UIActivity.ActivityType.openInIBooks
        ]

        if #available(iOS 11.0, *) {
            activityViewController.excludedActivityTypes?.append(UIActivity.ActivityType.markupAsPDF)
        }

        self.present(activityViewController, animated: true, completion: nil)

В иерархии представлений, которую я мог видеть, есть SLRemoteComposeViewController и SLComposeViewController, отображаемые поверх пользовательского интерфейса моего приложения. с clear фонами. Вот скриншот.

enter image description here

Я пытался добавить UIActivityViewController completionWithItemsHandler, но код там никогда не выполнялся.

activityViewController.completionWithItemsHandler = {(activity: UIActivity.ActivityType?, completed: Bool, returnedItems: [Any]?, error: Error?) in
            print(error?.localizedDescription)
        }

У меня тот же сценарий с Facebook. Как только пользователь выбирает Facebook из UIACtivityViewController, пользователю выводится предупреждение о том, что ему необходимо сначала войти в систему.

Итак, что можно сделать в случае Whatsapp?

РЕДАКТИРОВАТЬ: Заметил такую ​​же ошибку в приложении Youtube. В обход своего пользовательского общего ресурса, нажав More и выбрав Whatsapp из UIActivityViewController, приложение YouTube перестает отвечать.

...