Имитация Force Touch / 3D Touch на симуляторах iPhone 6S или iPhone 6S Plus


99

Я пытаюсь имитировать принудительное касание с помощью Xcode 7 GM на симуляторе iPhone 6S или iPhone 6S Plus. В частности, я пытаюсь имитировать принудительное касание значка тестового приложения, которое реализует ярлыки приложений.

Сообщите мне, есть ли решение для имитации этого. Я попробовал долгое нажатие, которое симулятор часов использует для имитации силового прикосновения, не сработало, поскольку iPhone фиксирует его как жест долгого нажатия.

Обновление: я загрузил образец кода ViewControllerPreview от Apple. Запустив их пример приложения, я вижу, что симулятор, хотя и является iPhone 6s, не поддерживает функцию 3D / принудительного касания. Я до сих пор не уверен, поддержит ли он эту функцию, если бы я использовал macbook с трекпадом с функцией принудительного касания.

введите описание изображения здесь

РЕДАКТИРОВАТЬ: Может ли кто-нибудь с macbook с трекпадом Force Touch попытаться использовать принудительное касание на трекпаде для имитации 3D-касания на симуляторе iPhone 6s или 6s Plus? Моя теория заключается в том, что вы можете использовать трекпад Force Touch на новых MacBook для имитации 3D-касания на новых симуляторах iPhone. Добавьте комментарий, отметив результаты, если вы попробуете, и я смогу обновить сообщение.

EDIT2: кажется, что трекпады Force Touch на новых моделях Macbook Pro не помогают.


1
Разве вам не нужно использовать бета-версию Xcode 7.1?
Якопо Пензо

Опция отключена при запуске с использованием 7.1B
dezinezync

1
Похоже, это радар. openradar.appspot.com/22635686
atreat

8
Force Touch на Macbook Pro 2015 года не помогает ..
Джадар,

Вы тоже можете использовать это .
felixwcf 08

Ответы:


74

Он говорит , что здесь ! внизу страницы....

Среда разработки

Xcode 7 поддерживает разработку 3D Touch. Все возможности отладки Xcode доступны для реализации новых функций.

Помните следующее:

С Xcode 7.0 вы должны разрабатывать на устройстве, поддерживающем 3D Touch. Симулятор в Xcode 7.0 не поддерживает 3D Touch.

В Xcode 7.0 вы должны реализовать свои контроллеры просмотра и всплывающего представления в коде. Interface Builder в Xcode 7.0 не предоставляет графической поддержки для настройки контроллеров представления или переходов для 3D Touch.

Обязательно протестируйте свое приложение с включенной и отключенной функцией 3D Touch, чтобы все функции были доступны для всех пользователей. На устройстве 3D Touch вы можете отключить 3D Touch, выбрав «Настройки»> «Основные»> «Универсальный доступ»> «3D Touch».

К сожалению, для этого нам нужно заполучить реальные устройства. :-(

РЕДАКТИРОВАТЬ.....

Начиная с Xcode 7.3, есть способ сделать это, если трекпад MacBook поддерживает принудительное касание. См. Ответ @iPrabu.


1
К вашему сведению, есть инструмент, на который я указал в своем ответе, который позволяет имитировать силовое касание, чтобы отобразить меню быстрых действий.
Nicolas S

1
Одна странность заключается в том, что при запуске симуляторов 6S или 6S Plus включается аппаратная опция «Force Touch Pressure». На всех других симуляторах этого нет. Похоже, они прошли часть пути, реализовав 3D Touch в симуляторе, но затем сдались. Пора покупать новый телефон ...
Дэн Лоуни,

2
На связанной странице теперь говорится, что Xcode 7.1 не поддерживает 3D Touch.
Дэн Риз

2
Говоря как QA-разработчик ... это отстой.
Джо Сусник

1
@LucasAzzopardi 3D touch поддерживается в Xcode 7.3, только если у вас есть трекпад с функцией Force Touch
Стивен,

64

Для тех, кто разрабатывает быстрые действия (ярлыки приложений), вы можете использовать этот скрипт, который позволяет имитировать глубокое нажатие на приложение в симуляторе.

https://github.com/DeskConnect/SBShortcutMenuSimulator

Вот скриншот: введите описание изображения здесь

Для тех, кто в первую очередь интересуется, как добавить действия, есть два варианта: статический и динамический. Вы можете установить только 4 варианта, сначала отобразятся все статические, а если есть место, покажут динамические.

Вот как добавить статические ярлыки. Это довольно просто, достаточно добавить несколько ключей на основнойInfo.plist

В этом примере я добавлю два статических параметра: один со значком поиска по умолчанию, а другой с настраиваемым значком из каталога активов.

<key>UIApplicationShortcutItems</key>
<array>
    <dict>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Add Event (with custom icon)</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.reverse.appname.addevent</string>
        <key>UIApplicationShortcutItemIconFile</key>
        <string>custom-icon-from-asset-catalog</string>
        <key>UIApplicationShortcutItemSubtitle</key>
        <string>Here you can add some text below the option</string>
    </dict>
    <dict>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Search Event (with default icon)</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.reverse.appname.searchevents</string>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeSearch</string>
        <key>UIApplicationShortcutItemSubtitle</key>
        <string>Here you can add some text below the option</string>
    </dict>
</array>

1
Отлично, большое спасибо! Удалось ли вам смоделировать функциональность Peek and Pop?
Алексей

@Alexey пока нет, но по крайней мере теперь вы можете протестировать на реальном устройстве. И, скорее всего, симулятор получит это работающее в следующем обновлении, пункт меню уже есть.
Nicolas S

Я не могу показать ярлык, не могли бы вы мне помочь ..?
Дипен Чудасама

@DipenChudasama, конечно, я обновил свой ответ, чтобы показать вам, как добавлять ярлыки.
Nicolas S

1
Для версий iOS выше 9.1 используйте форк от PoomSmart: github.com/PoomSmart/SBShortcutMenuSimulator
thijsonline

42

С Xcode 7.3 вы можете протестировать функцию 3D Touch в симуляторе, но только с одним ограничением. (Ссылка на примечания к выпуску Xcode7.3)

Машина (macbook / mac с трекпадом), которую вы разрабатываете, должна иметь возможность 3D Touch.

Вы можете найти его в меню оборудования симулятора iOS.

Комментарий Павла Алексеева: Не забудьте включить «Force Click и тактильную обратную связь» в Системных настройках → Трекпад.

введите описание изображения здесь


5
Не забудьте включить «Force Click и тактильную обратную связь» в Системных настройках → Трекпад
Павел Алексеев

1
В качестве дополнительного требования вы должны использовать последнюю версию Simulator, пару минут я безуспешно пробовал iOS 9.2 - с 9.3 работает;)
Фредерик Винкельсдорф,

8
Искал несколько минут и в итоге понял, что я моделирую с помощью iPhone 6, а не 6s, поэтому кнопка была для меня неактивной
juliensaad 08

Работает только с трекпадом. Если у кого-то подключена обычная мышь (не уверен насчет волшебной мыши), она не будет работать
Работает на шахте

10

Принудительное давление в iOS (например, Peek & Pop) не отображается ни через Xcode 7.0, ни через Xcode 7.1 Beta's Simulator. Параметры касания при нажатии актуальны только для устройств watchOS в этих версиях Simulator. Если у вас есть бета-версия Xcode 7.1, вы заметите, что опция меню фактически отключена.

С Xcode 7.3 и средами выполнения симулятора iOS 9.3 и более поздних версий вы можете протестировать функциональность Peek / Pop с помощью сенсорной панели Force Touch.


Как рассчитать, неглубокий ли это пресс или глубокий пресс?
Вайбхав Джавери

9

Вы можете включить 3D Touch в симуляторе. Благодаря этой библиотеке.

  • После добавления с помощью комбинации клавиш управления, управления и переключения можно включить 3D Touch.

  • Не забудьте добавить библиотеку только в среду отладки . Исключить из выпуска среды .


Это только для пикапа или для быстрого доступа к дому?
RileyDev

Да это только для пика и поп. Вы можете использовать это для домашних ярлыков.
sanky009

Его! функция Peek & Pop не работает на Simulator 6s plus с Xcode 7.2, когда я нажимаю дольше и использую комбинацию команды, управления и сдвига ... вы можете сказать мне, почему? Спасибо
А. Трехо

@ sanky009: Функция Peek & Pop не работает на Simulator 6s plus с Xcode 7.2, когда я делаю более длительное нажатие и использую комбинацию команд, управления и сдвига ...
Бхуми Джагани

2

Для касания «Быстрые действия на главном экране» я сделал следующее:

  • создал объект UIMutableApplicationShortcutItem

  • поместите его в launchOptions, чтобы UIApplicationLaunchOptionsShortcutItemKey

  • и это все

Похоже, пользователь коснулся значка приложения 3d.

    let shortcut = UIMutableApplicationShortcutItem(type: ShortcutIdentifier.Third.type,
        localizedTitle: "Title",
        localizedSubtitle: "Subtitle",
        icon: UIApplicationShortcutIcon(type: .Play), userInfo: [
        AppDelegate.applicationShortcutUserInfoIconKey: UIApplicationShortcutIconType.Play.rawValue
        ]
    )

    let launchOption = [
        "UIApplicationLaunchOptionsShortcutItemKey" : shortcut
    ]

    launchOptions = launchOption

(приложение: didFinishLaunchingWithOptions :)


Я сделал что-то подобное, чтобы проверить это, но было бы неплохо провести полный тест. Есть несколько способов войти в приложение через ярлык приложения. Один из способов - это когда приложение работает в фоновом режиме, и вы используете его с помощью ярлыка приложения.
Крис Геллчи,

2

Здесь есть небольшой код, который позволяет вам протестировать 3D Touch peek & pop в симуляторе. Имейте в виду, что это код для iOS 9.0, и некоторые из внутренних / частных методов были изменены в 9.1, поэтому вам нужно будет внести несколько незначительных изменений (Подсказка: слово «Позиция» изменено на «Местоположение» в одном из имена методов) .

https://gist.github.com/nickfrey/07e2c6d8d2e5444fb91d

Как это, так и https://github.com/DeskConnect/SBShortcutMenuSimulator, упомянутый в других ответах, позволяет вам достаточно компетентно тестировать 3D Touch без реального устройства.


1

Официально Xcode 7.1 поддерживает 3D Touch, но не на симуляторе. Для тестирования вам потребуется реальное устройство. Проверьте последний абзац документации от Apple.

Документ Apple

3D Touch не поддерживается в симуляторе

Однако вы можете использовать сторонние инструменты, чтобы протестировать его на симуляторе, таком как тот, который выделен Николасом S выше.


0

Новые MacBook оснащены сенсорной панелью с функцией принудительного касания. Я думаю, что эти варианты будут работать только в этом.


0

У меня это сработало с симулятором XCode 9 и iphone 8. На вашем Mac перейдите в системные настройки -> Трекпад -> Включить принудительный щелчок и тактильную обратную связь .

введите описание изображения здесь

Затем сильно нажмите на любую часть симулятора iphone, чтобы выполнить силовое касание.


Я сделал это, но это все равно не работает :( Xcode 9.4.1, симулятор iPhone X.
Supertecnoboff

1
@Supertecnoboff Вы должны использовать трекпад вместо мыши. У меня это работает на Xcode 10, но было не очевидно, что я должен использовать трекпад в MacBook. Конечно, необходимо отметить «Force Click и тактильную обратную связь».
Ариэль Богдзевич,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.