Simule toque de força / toque 3D em simuladores de iPhone 6S ou iPhone 6S Plus

99

Estou tentando simular um toque de força usando o Xcode 7 GM no simulador do iPhone 6S ou iPhone 6S Plus. Em particular, estou tentando simular o toque forçado no ícone do aplicativo de teste que está implementando os atalhos de aplicativos.

Deixe-me saber se existe uma solução para simular isso, eu tentei o toque longo que o simulador de relógio usa para simular o toque de força, não funcionou, pois o iPhone captura como um gesto de toque longo.

Atualização: baixei o código de amostra ViewControllerPreview da Apple. Executando o aplicativo de amostra, vejo que o simulador, embora seja um iPhone 6s, não oferece suporte para o recurso 3D / toque forçado. Ainda não tenho certeza se ele suportaria o recurso se eu fosse usar um macbook com um trackpad habilitado para toque forçado.

insira a descrição da imagem aqui

EDITAR: Alguém com um macbook com trackpad de toque de força pode tentar usar o toque de força no trackpad para simular o toque 3D no simulador do iPhone 6s ou 6s Plus? Minha teoria é que você talvez possa usar o trackpad de toque de força nos novos MacBooks para simular o toque 3D em novos simuladores de iPhone. Adicione um comentário observando os resultados se você tentar e eu posso atualizar o post.

EDIT2: Parece que os trackpads do Force Touch no modelo mais recente do macbook pros não ajudam.

Kris Gellci
fonte
1
Você não precisa usar o Xcode 7.1 beta?
Jacopo Penzo
A opção é desabilitada quando executado usando 7.1B
dezinezync
1
Parece que há um radar nisto. openradar.appspot.com/22635686
atreat
8
Force Touch no Macbook Pro 2015 não ajuda ..
Jadar
Você pode usar isso também.
felixwcf

Respostas:

74

Diz aqui ! no final da página ....

Ambiente de desenvolvimento

O Xcode 7 oferece suporte ao desenvolvimento 3D Touch. Todos os recursos de depuração do Xcode estão disponíveis para implementar os novos recursos.

Lembre-se do seguinte:

Com o Xcode 7.0, você deve desenvolver em um dispositivo que suporte 3D Touch. O simulador no Xcode 7.0 não oferece suporte ao 3D Touch.

Com o Xcode 7.0, você deve implementar seus controladores de visualização peek e pop no código. O Interface Builder no Xcode 7.0 não fornece suporte gráfico para configurar controladores de visualização ou transições para 3D Touch.

Certifique-se de testar seu aplicativo com o 3D Touch habilitado e desabilitado, garantindo que todos os recursos estejam disponíveis para todos os usuários. Em um dispositivo 3D Touch, você pode desativar o 3D Touch em Ajustes> Geral> Acessibilidade> 3D Touch

Então, infelizmente, parece que precisamos colocar nossas mãos nos dispositivos reais para fazer isso. :-(

EDITAR.....

A partir do Xcode 7.3, há uma maneira de fazer isso se o trackpad do seu MacBook suportar toque forçado. Veja a resposta de @iPrabu.

Kaylanx
fonte
1
Apenas para sua informação, há uma ferramenta que vinculei à minha resposta, que permite emular o toque de força para mostrar o menu de Ações rápidas.
Nicolas S
1
Uma curiosidade é que se você executar os simuladores 6S ou 6S Plus, a opção de hardware "Forçar pressão de toque" está habilitada. Em todos os outros simuladores, não. Portanto, parece que eles avançaram parcialmente na implementação do toque 3D no simulador, mas desistiram. É hora de comprar um novo telefone ...
Dan Loughney
2
A página vinculada agora diz que o Xcode 7.1 não oferece suporte ao 3D Touch.
Dan Reese
2
Falando como um desenvolvedor de controle de qualidade ... isso é péssimo.
Joe Susnick
1
@LucasAzzopardi 3D touch é compatível com o Xcode 7.3 apenas se você tiver um trackpad com force touch
Stephen
64

Para aqueles que estão desenvolvendo Quick Actions (App Shortcuts), você pode usar este script que permite simular uma pressão profunda em um aplicativo no simulador.

https://github.com/DeskConnect/SBShortcutMenuSimulator

Aqui está uma captura de tela: insira a descrição da imagem aqui

Para aqueles que estão procurando como adicionar as ações em primeiro lugar, existem duas opções, Estático e Dinâmico. Você pode definir apenas 4 opções, primeiro mostrará todas as Estáticas e, se houver espaço, mostrará as Dinâmicas.

Veja como adicionar atalhos estáticos. É muito fácil, basta adicionar algumas teclas no principalInfo.plist

Neste exemplo, estarei adicionando duas opções estáticas, uma com o ícone de pesquisa padrão e a outra com o ícone personalizado do catálogo de ativos.

<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
fonte
1
Ótimo, muito obrigado! Você conseguiu simular a funcionalidade Peek e Pop?
Alexey
@Alexey ainda não não, mas pelo menos agora você pode testar no dispositivo real. E muito provavelmente o simulador fará isso funcionar na atualização seguinte, a opção de menu já está lá.
Nicolas S
Não consigo mostrar o item de atalho, você pode me ajudar ..?
Dipen Chudasama
@DipenChudasama claro, atualizei minha resposta para mostrar como adicionar os atalhos.
Nicolas S
1
Para versões iOS acima de 9.1, use o fork do PoomSmart: github.com/PoomSmart/SBShortcutMenuSimulator
thijsonline
42

Com o Xcode 7.3 você pode testar o recurso de toque 3D no simulador, mas com apenas uma restrição. (Referência de notas de versão Xcode7.3)

A máquina (macbook / mac com trackpad) que você está desenvolvendo deve ter capacidade de toque 3D.

Você pode encontrá-lo no menu Hardware do simulador iOS.

Comentários de Pavel Alexeev: certifique-se de habilitar “Force Click and haptic feedback” em System Preferences → Trackpad

insira a descrição da imagem aqui

ipraba
fonte
5
Certifique-se de habilitar “Force Click and haptic feedback” em System Preferences → Trackpad
Pavel Alexeev
1
Como um requisito adicional, você deve usar o Simulador mais recente, tentei o iOS 9.2 por alguns minutos sem sucesso - com o 9.3 ele funciona;)
Frederik Winkelsdorf
8
Procurei por alguns minutos e acabei percebendo que estava simulando um iPhone 6 e não um 6s, por isso o botão estava esmaecido para mim
juliensaad
Só funciona com o trackpad. Se alguém tiver um mouse comum (não tenho certeza sobre mouse mágico) conectado, não funcionará
Funciona no meu de
10

A pressão de força no iOS (por exemplo: Peek & Pop) não é exposta por meio do Xcode 7.0 nem do simulador do Xcode 7.1 Beta. As opções de toque de pressão são relevantes apenas para dispositivos watchOS nessas versões do Simulador. Se você tiver o Xcode 7.1 beta, notará que a opção de menu está realmente desabilitada.

Com o Xcode 7.3 e o iOS 9.3 e tempos de execução do simulador posteriores, você pode testar a funcionalidade peek / pop usando um trackpad de toque forçado.

Jeremy Huddleston Sequoia
fonte
Como calcular se é Shallow Press ou Deep Press?
Vaibhav Jhaveri
9

Você pode ativar o 3D Touch no simulador. Graças a esta biblioteca.

  • Depois de adicioná-lo Usando uma combinação das teclas de comando, controle e shift, o 3D Touch pode ser ativado.

  • Não se esqueça de adicionar biblioteca apenas no ambiente de depuração . Exclua-o do ambiente de lançamento .

sanky009
fonte
Isso é apenas para peep and pop ou para atalhos de casa também?
RileyDev
Sim, é apenas para peep e pop. Você pode usar isso para atalhos de casa.
sanky009
Dele! a função Peek & Pop não funciona no Simulador 6s plus com Xcode 7.2 quando eu pressiono mais e uso a combinação de comando, controle e deslocamento ... você pode me dizer por quê? Obrigado
A. Trejo
@ sanky009: A função Peek & Pop não funciona no Simulador 6s plus com Xcode 7.2 quando eu pressiono mais e uso a combinação de comando, controle e deslocamento ...
Bhoomi Jagani
2

Para o toque de "Ações rápidas da tela inicial", fiz o seguinte:

  • criou um objeto de UIMutableApplicationShortcutItem

  • coloque-o em launchOptions para UIApplicationLaunchOptionsShortcutItemKey

  • e é isso

Parece que o usuário fez o toque 3D no ícone do aplicativo.

    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

(aplicativo: didFinishLaunchingWithOptions :)

Andrew
fonte
Fiz algo semelhante para testar, mas seria bom fazer o teste completo. Existem várias maneiras de entrar no aplicativo por meio de um atalho de aplicativo. Uma maneira é quando o aplicativo está sendo executado em segundo plano e você o coloca em primeiro plano por meio do atalho do aplicativo.
Kris Gellci
2

Há um pouco de código aqui que permite testar o 3D Touch peek & pop no simulador. Tenha em mente que este é um código para iOS 9.0, e alguns dos métodos internos / privados foram alterados no 9.1, então você precisará fazer algumas pequenas alterações (Dica: a palavra 'Posição' mudou para 'Local' em um dos nomes de métodos) .

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

Tanto este quanto o https://github.com/DeskConnect/SBShortcutMenuSimulator mencionado em outras respostas permitem que você teste o 3D Touch sem um dispositivo real com bastante competência.

Jordan Smith
fonte
1

Oficialmente, o Xcode 7.1 suporta toque 3D, mas não no simulador. Você precisa ter um dispositivo real para testar. Verifique o último parágrafo da documentação da Apple.

Documento Apple

3D touch não suportado no simulador

No entanto, você pode usar ferramentas de terceiros para testá-lo no simulador, como o destacado por Nicolas S acima.

Jayprakash Dubey
fonte
0

Os macbooks mais recentes têm touch pad com force-touch. Acho que essas opções só funcionarão nisso.

Atulkhatri
fonte
0

Funcionou para mim com o simulador XCode 9 e iphone 8. No seu mac, vá para as preferências do sistema -> Trackpad -> Ativar Forçar clique e feedback tátil .

insira a descrição da imagem aqui

Em seguida, pressione firmemente em qualquer parte do simulador de iphone para executar a ação de força de toque.

Karthik
fonte
Eu fiz isso, mas ainda não funciona :( Xcode 9.4.1, simulador do iPhone X.
Supertecnoboff
1
@Supertecnoboff Você deve usar o trackpad em vez do mouse. Funciona para mim no Xcode 10, mas não era óbvio que eu precisava usar o Trackpad no MacBook. É claro que a opção "Forçar clique e feedback tátil" deve ser marcada.
Ariel Bogdziewicz