Как мы можем получить текст, когда пользователь копирует сообщение из Whats Up, Skype и т. Д., Например, из стороннего приложения с помощью iOS Swift?

Шаг 01: я могу запустить свое приложение (ИМЯ ПРИЛОЖЕНИЯ: TextDetectAPP)

Шаг 02: Пользователь нажимает кнопку «Домой»

Шаг 03: Пользователь открывает Skype или любое стороннее приложение (ИМЯ ПРИЛОЖЕНИЯ: TextDetectAPPMove to Background state)

Spep04: Текст копии пользователя (мне нужно получить текст копии из Skype или любого стороннего приложения)

Примечание :

  • UIpasteboard работает нормально, только приложения, разработанные пользователем, в iOS Swift

  • Должны ли мы иметь права доступа для чтения текстовых сообщений из Skype, Whats Up или любых сторонних приложений в iOS Swift?

Заранее спасибо


person suripappu Rengan    schedule 14.03.2018    source источник
comment
Вы пробовали UIPasteBoard.general() ? И посмотрите, можете ли вы получить строки из других приложений?   -  person badhanganesh    schedule 14.03.2018
comment
@BadhanGanesh: - да. UIPasteBoard.general используется только для приложений, разработанных пользователями. Как насчет сторонних приложений, таких как скайп, whatsup и так далее. Я хочу получить доступ к третьей стороне для копирования сообщений с помощью swift ios. после перехода в фоновое состояние, как наше приложение узнало текущее приложение пользователя в ios swift. Даже я пробовал текущее приложение, оно работает только в OSX, а не на устройстве iOS.   -  person suripappu Rengan    schedule 14.03.2018


Ответы (1)


Если я правильно понял ваш вопрос, вы хотите получить тексты, которые были скопированы в других приложениях (Skype, FB и т. д.). Вы можете сделать это, используя класс UIPasteboard. Обычно тексты копируются в общий монтажный стол, и вы без проблем можете получить к нему доступ (я пробовал с приложениями Skype и Message (iOS), работает). Когда вы снова открываете свое приложение, вы можете получить скопированный текст из сторонних приложений, например, в методе делегата applicationDidBecomeActive:

func applicationDidBecomeActive(_ application: UIApplication) {
    if let clipboardString = UIPasteboard.general.string {
        print(clipboardString)
    }
}

Вы также можете использовать уведомление UIPasteboardChanged для прослушивания изменений в монтажном столе, однако вы не можете получать уведомления об изменениях из других приложений. Кроме того, ваше приложение может не находиться в фоновом режиме все время при выполнении кода (если только вы не включите определенные фоновые режимы, такие как Audio, Airplay и т. д.). Таким образом, у вас нет возможности получить скопированные тексты, когда вы находитесь в фоновом режиме. Вам либо нужно использовать описанный выше метод, либо (или), если ваше приложение поддерживает фоновое выполнение, вы можете запускать NSTimer огонь каждые n секунд, который получает содержимое монтажного стола.

person badhanganesh    schedule 14.03.2018
comment
Бадхан Ганеш: - Спасибо. Все отлично. Могу ли я получить текст, пока пользователь копирует текст в Skype, в то время мы должны получать текст в самом Skype, а не переходить в пользовательское приложение? На самом деле приложение работает в фоновом режиме, как мы можем получить текст Skype и так далее в сторонних приложениях? - person suripappu Rengan; 14.03.2018
comment
@suripappuRengan Нет, ты не можешь этого добиться. Смотрите отредактированный ответ. - person badhanganesh; 14.03.2018
comment
@suripappu Ренган Ответ сработал? Если да, отметьте ответ как принятый. Или, если вы исправили с помощью другого решения, пожалуйста, опубликуйте его здесь как ответ, чтобы другие люди могли извлечь из него пользу. - person badhanganesh; 18.03.2018
comment
Нет. Это нельзя исправить в iOS. - person suripappu Rengan; 19.03.2018