Simule Force Touch / 3D Touch en simuladores de iPhone 6S o iPhone 6S Plus

99

Estoy tratando de simular un toque forzado usando Xcode 7 GM en el simulador de iPhone 6S o iPhone 6S Plus. En particular, estoy tratando de simular el toque forzado en el ícono de la aplicación de prueba que está implementando accesos directos a aplicaciones.

Avíseme si hay una solución para simular esto, probé la pulsación larga que usa el simulador de Watch para simular el toque de fuerza, no funcionó ya que el iPhone lo captura como un gesto de pulsación larga.

Actualización: descargué el código de muestra ViewControllerPreview de Apple. Al ejecutar su aplicación de muestra, veo que el simulador, aunque es un iPhone 6s, no es compatible con la función 3D / Force Touch. Todavía no estoy seguro de si admitiría la función si tuviera que usar una macbook con un trackpad habilitado para forzar el tacto.

ingrese la descripción de la imagen aquí

EDITAR: ¿Alguien con un macbook que tiene un trackpad de toque forzado puede intentar usar el toque de fuerza en el trackpad para simular el toque 3D en el simulador de iPhone 6s o 6s Plus? Mi teoría es que quizás puedas usar el trackpad Force Touch en las nuevas MacBooks para simular el toque 3D en los nuevos simuladores de iPhone. Agrega un comentario anotando los resultados si lo intentas y puedo actualizar la publicación.

EDIT2: Parece que los trackpads Force Touch en el modelo más nuevo de macbook pros no ayudan.

Kris Gellci
fuente
1
¿No tienes que usar Xcode 7.1 beta?
Jacopo Penzo
La opción está deshabilitada cuando se ejecuta con 7.1B
dezinezync
1
Parece que hay un radar en esto. openradar.appspot.com/22635686
atreat
8
Force Touch en la Macbook Pro 2015 no ayuda ..
Jadar
También puede considerar usar esto .
felixwcf

Respuestas:

74

¡Dice aquí ! al final de la página....

Entorno de desarrollo

Xcode 7 admite el desarrollo 3D Touch. Todas las funciones de depuración de Xcode están disponibles para implementar las nuevas funciones.

Tenga en cuenta lo siguiente:

Con Xcode 7.0 debe desarrollar en un dispositivo que admita 3D Touch. El simulador de Xcode 7.0 no es compatible con 3D Touch.

Con Xcode 7.0 debe implementar sus controladores de vista rápida y emergente en el código. Interface Builder en Xcode 7.0 no proporciona soporte gráfico para configurar controladores de vista o transiciones para 3D Touch.

Asegúrese de probar su aplicación con 3D Touch habilitado y deshabilitado, asegurándose de que todas las funciones estén disponibles para todos los usuarios. En un dispositivo 3D Touch, puede desactivar 3D Touch en Configuración> General> Accesibilidad> 3D Touch

Desafortunadamente, parece que necesitamos tener en nuestras manos los dispositivos reales para hacerlo. :-(

EDITAR.....

A partir de Xcode 7.3, hay una forma de hacer esto si el trackpad de su MacBook admite el toque forzado. Vea la respuesta de @iPrabu.

Kaylanx
fuente
1
Solo para su información, hay una herramienta que vinculé en mi respuesta, que le permite emular el toque forzado para mostrar el menú de Acciones rápidas.
Nicolas S
1
Una rareza es que si ejecuta los simuladores 6S o 6S Plus, la opción de hardware "Force Touch Pressure" está habilitada. En todos los demás simuladores no lo es. Así que parece que lograron parte del camino a través de la implementación del toque 3D en el simulador, pero luego se rindieron. Es hora de comprar un teléfono nuevo ...
Dan Loughney
2
La página vinculada ahora dice que Xcode 7.1 no es compatible con 3D Touch.
Dan Reese
2
Hablando como un desarrollador de QA ... esto apesta.
Joe Susnick
1
@LucasAzzopardi 3D touch es compatible con Xcode 7.3 solo si tiene un trackpad con force touch
Stephen
64

Para aquellos que están desarrollando acciones rápidas (accesos directos a aplicaciones), pueden usar este script que les permite simular una presión profunda en una aplicación en el simulador.

https://github.com/DeskConnect/SBShortcutMenuSimulator

Aquí hay una captura de pantalla: ingrese la descripción de la imagen aquí

Para aquellos que buscan cómo agregar las acciones en primer lugar, hay dos opciones, estática y dinámica. Puede configurar solo 4 opciones, primero mostrará todas las estáticas y, si hay espacio, mostrará las dinámicas.

A continuación, se explica cómo agregar atajos estáticos. Es bastante fácil, solo agregue algunas teclas en laInfo.plist

En este ejemplo, agregaré dos opciones estáticas, una con el ícono de búsqueda predeterminada y la otra con el ícono personalizado del catálogo de activos.

<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>
Nicolas S
fuente
1
¡Genial, muchas gracias! ¿Ha logrado simular la funcionalidad Peek and Pop?
Alexey
@Alexey aún no, pero al menos ahora puedes probar en el dispositivo real. Y lo más probable es que el simulador lo haga funcionar en la siguiente actualización, la opción de menú ya está allí.
Nicolas S
No puedo mostrar el elemento de acceso directo. ¿Pueden ayudarme ...?
Dipen Chudasama
@DipenChudasama seguro, he actualizado mi respuesta para mostrarte cómo agregar los atajos.
Nicolas S
1
Para las versiones de iOS superiores a 9.1, use la bifurcación de PoomSmart: github.com/PoomSmart/SBShortcutMenuSimulator
thijsonline
42

Con Xcode 7.3 puede probar la función táctil 3D en el simulador, pero con una sola restricción. (Referencia de notas de la versión de Xcode7.3)

La máquina (macbook / mac con trackpad) que está desarrollando debe tener capacidad táctil 3D.

Puede encontrarlo en el menú Hardware del simulador de iOS.

Comentarios de Pavel Alexeev: asegúrese de habilitar "Forzar clic y retroalimentación háptica" en Preferencias del sistema → Trackpad

ingrese la descripción de la imagen aquí

ipraba
fuente
5
Asegúrese de habilitar "Force Click y retroalimentación háptica" en Preferencias del sistema → Trackpad
Pavel Alexeev
1
Como requisito adicional, debe usar el último Simulador, probé iOS 9.2 durante un par de minutos sin éxito; con 9.3 funciona;)
Frederik Winkelsdorf
8
Busqué durante unos minutos y terminé dándome cuenta de que estaba simulando el uso de un iPhone 6 y no un 6s, por lo que el botón estaba atenuado para mí
juliensaad
Solo funciona con el trackpad. Si uno tiene un mouse normal (no estoy seguro sobre el mouse mágico) conectado, eso no funcionará
Works On Mine
10

La presión de fuerza en iOS (por ejemplo: Peek & Pop) no se expone a través de Xcode 7.0 ni del simulador de Xcode 7.1 Beta. Las opciones de presión táctil solo son relevantes para los dispositivos watchOS en esas versiones de Simulator. Si tiene la versión beta de Xcode 7.1, notará que la opción de menú está realmente deshabilitada.

Con Xcode 7.3 y los tiempos de ejecución del simulador iOS 9.3 y posteriores, puede probar la funcionalidad peek / pop usando un trackpad Force Touch.

Jeremy Huddleston Sequoia
fuente
¿Cómo calcular si es Shallow Press o Deep Press?
Vaibhav Jhaveri
9

Puede habilitar 3D Touch en el simulador. Gracias a esta biblioteca.

  • Después de agregarlo Se puede habilitar 3D Touch mediante una combinación de las teclas de comando, control y mayúsculas .

  • No olvide agregar la biblioteca solo en el entorno de depuración . Excluirlo del entorno de lanzamiento .

sanky009
fuente
¿Es eso solo para mirar y hacer estallar o también para atajos domésticos?
RileyDev
Sí, es solo para escuchar y hacer estallar. Puede usar esto para atajos de casa.
sanky009
¡Su! la función Peek & Pop no funciona en Simulator 6s plus con Xcode 7.2 cuando hago la presión más larga y uso la combinación de comando, control y shift ... ¿me puedes decir por qué? Gracias
A. Trejo
@ sanky009: La función Peek & Pop no funciona en Simulator 6s plus con Xcode 7.2 cuando presiono más tiempo y uso la combinación de comando, control y cambio ...
Bhoomi Jagani
2

Para el toque "Acciones rápidas de la pantalla de inicio", hice lo siguiente:

  • creó un objeto de UIMutableApplicationShortcutItem

  • ponerlo en launchOptions para UIApplicationLaunchOptionsShortcutItemKey

  • y eso es

Parece que el usuario hizo el toque 3D en el icono de la aplicación.

    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

(aplicación: didFinishLaunchingWithOptions :)

Andrés
fuente
Hice algo similar para probarlo, pero sería bueno hacer la prueba completa. Hay varias formas de ingresar a la aplicación a través de un acceso directo a la aplicación. Una forma es cuando la aplicación se ejecuta en segundo plano y usted la pone en primer plano a través del acceso directo de la aplicación.
Kris Gellci
2

Aquí hay un poco de código que le permite probar 3D Touch peek & pop en el simulador. Tenga en cuenta que este es un código para iOS 9.0, y algunos de los métodos internos / privados han cambiado en 9.1, por lo que deberá realizar algunos cambios menores (Sugerencia: la palabra 'Posición' cambió a 'Ubicación' en uno de los nombres de métodos) .

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

Tanto esto como https://github.com/DeskConnect/SBShortcutMenuSimulator mencionados en otras respuestas le permiten probar 3D Touch sin un dispositivo real de manera bastante competente.

Jordan Smith
fuente
1

Oficialmente, Xcode 7.1 es compatible con 3D touch pero no en el simulador. Debe tener un dispositivo real para realizar la prueba. Consulte el último párrafo de la documentación de Apple.

Documento de Apple

El toque 3D no es compatible con el simulador

Sin embargo, puede usar herramientas de terceros para probarlo en un simulador, como el resaltado por Nicolas S arriba.

Jayprakash Dubey
fuente
0

Los macbooks más nuevos tienen un panel táctil habilitado con fuerza táctil. Creo que estas opciones solo funcionarán en eso.

atulkhatri
fuente
0

Me funcionó con el simulador de XCode 9 y iphone 8. En su mac, vaya a Preferencias del sistema -> Trackpad -> Habilitar clic forzado y retroalimentación háptica .

ingrese la descripción de la imagen aquí

Luego presione firmemente en cualquier parte del simulador de iPhone para realizar la acción de toque forzado.

karthik
fuente
Hice esto, pero todavía no funciona :( Xcode 9.4.1, simulador de iPhone X.
Supertecnoboff
1
@Supertecnoboff Tienes que usar el trackpad en lugar del mouse. Me funciona en Xcode 10, pero no era obvio que tuviera que usar Trackpad en MacBook. Por supuesto, se debe marcar "Forzar clic y retroalimentación háptica".
Ariel Bogdziewicz