Symuluj siłę dotyku / dotyk 3D na symulatorach iPhone'a 6S lub iPhone'a 6S Plus

99

Próbuję zasymulować siłę dotyku za pomocą Xcode 7 GM na symulatorze iPhone 6S lub iPhone 6S Plus. W szczególności próbuję zasymulować siłę dotknięcia ikony aplikacji testowej, która implementuje skróty aplikacji.

Daj mi znać, jeśli istnieje rozwiązanie, które to zasymuluje, wypróbowałem długie naciśnięcie, którego symulator zegarka używa do symulacji dotyku siły, nie działało, ponieważ iPhone przechwytuje to jako gest długiego naciśnięcia.

Aktualizacja: pobrałem kod ViewControllerPreview Sample z Apple. Po uruchomieniu ich przykładowej aplikacji widzę, że symulator, mimo że jest to iPhone 6s, nie obsługuje funkcji 3D / force touch. Nadal nie jestem pewien, czy obsługiwałby tę funkcję, gdybym używał macbooka z gładzikiem z włączonym wymuszonym dotykiem.

wprowadź opis obrazu tutaj

EDYCJA: Czy ktoś z Macbookiem wyposażonym w gładzik z wymuszonym dotykiem może spróbować użyć siły dotyku na gładziku, aby zasymulować dotyk 3D na symulatorze iPhone'a 6s lub 6s Plus? Moja teoria mówi, że możesz użyć gładzika Force Touch na nowych MacBookach do symulacji dotyku 3D w nowych symulatorach iPhone'a. Dodaj komentarz notując wyniki, jeśli spróbujesz, a mogę zaktualizować wpis.

EDIT2: Wygląda na to, że gładziki Force Touch w nowszych modelach profesjonalistów Macbooka nie pomagają.

Kris Gellci
źródło
1
Nie musisz używać Xcode 7.1 beta?
Jacopo Penzo
Opcja jest wyłączona podczas pracy z 7.1B
dezinezync
1
Wygląda na to, że jest na tym radar. openradar.appspot.com/22635686
atreat
8
Force Touch na Macbooku Pro 2015 nie pomaga ..
Jadar
Możesz rozważyć użycie tego również.
felixwcf

Odpowiedzi:

74

Mówi się tutaj ! na dole strony....

Środowisko programistyczne

Xcode 7 obsługuje programowanie 3D Touch. Wszystkie funkcje debugowania Xcode są dostępne do implementacji nowych funkcji.

Pamiętaj o następujących kwestiach:

W przypadku Xcode 7.0 musisz programować na urządzeniu obsługującym 3D Touch. Symulator w Xcode 7.0 nie obsługuje 3D Touch.

W Xcode 7.0 musisz zaimplementować kontrolery podglądu wglądu i popu w kodzie. Interface Builder w Xcode 7.0 nie zapewnia graficznej obsługi konfigurowania kontrolerów widoku lub przejść dla 3D Touch.

Pamiętaj, aby przetestować swoją aplikację z włączonym i wyłączonym 3D Touch, upewniając się, że wszystkie funkcje są dostępne dla wszystkich użytkowników. Na urządzeniu 3D Touch możesz wyłączyć 3D Touch w Ustawienia> Ogólne> Dostępność> 3D Touch

Więc niestety wygląda na to, że musimy zdobyć rzeczywiste urządzenia, aby to zrobić. :-(

EDYTOWAĆ.....

Od wersji Xcode 7.3 można to zrobić, jeśli gładzik MacBooka obsługuje funkcję wymuszonego dotyku. Zobacz odpowiedź @iPrabu.

kaylanx
źródło
1
Do Twojej wiadomości, jest narzędzie, które połączyłem w mojej odpowiedzi, które pozwala na emulację dotyku siły, aby wyświetlić menu szybkich czynności.
Nicolas S
1
Osobliwością jest to, że jeśli uruchomisz symulatory 6S lub 6S Plus, opcja sprzętowa „Force Touch Pressure” jest włączona. We wszystkich innych symulatorach tak nie jest. Wygląda więc na to, że przeszli przez implementację dotyku 3D w symulatorze, ale potem się poddali. Czas kupić nowy telefon ...
Dan Loughney
2
Na połączonej stronie jest teraz napisane, że Xcode 7.1 nie obsługuje 3D Touch.
Dan Reese
2
Mówienie jako programista QA ... to jest do bani.
Joe Susnick
1
@LucasAzzopardi 3D touch jest obsługiwany w Xcode 7.3 tylko, jeśli masz gładzik z wymuszonym dotykiem
Stephen
64

Dla tych, którzy tworzą Szybkie akcje (skróty do aplikacji), możesz użyć tego skryptu, który umożliwia symulację głębokiego naciśnięcia aplikacji na symulatorze.

https://github.com/DeskConnect/SBShortcutMenuSimulator

Oto zrzut ekranu: wprowadź opis obrazu tutaj

Dla tych, którzy zastanawiają się, jak dodać akcje na pierwszym miejscu, są dwie opcje, statyczna i dynamiczna. Możesz ustawić tylko 4 opcje, najpierw pokażą wszystkie Statyczne, a jeśli jest miejsce, pokaż Dynamiczne.

Oto jak dodać skróty statyczne. To całkiem proste, po prostu dodaj kilka kluczy na głównymInfo.plist

W tym przykładzie dodam dwie opcje statyczne, jedną z ikoną wyszukiwania domyślnego, a drugą z ikoną niestandardową z katalogu zasobów.

<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.
źródło
1
Wielkie dzięki! Czy udało Ci się zasymulować funkcjonalność Peek and Pop?
Alexey
@Alexey jeszcze nie nie, ale przynajmniej możesz teraz przetestować na prawdziwym urządzeniu. I najprawdopodobniej symulator będzie działał w następnej aktualizacji, opcja menu już tam jest.
Nicolas S
Nie mogę pokazać elementu skrótu, czy możesz mi pomóc?
Dipen Chudasama
@DipenChudasama oczywiście, zaktualizowałem moją odpowiedź, aby pokazać, jak dodać skróty.
Nicolas S,
1
W przypadku wersji iOS powyżej 9.1 użyj widelca z PoomSmart: github.com/PoomSmart/SBShortcutMenuSimulator
thijsonline
42

Dzięki Xcode 7.3 możesz przetestować funkcję dotykową 3D w symulatorze, ale z tylko jednym ograniczeniem. (Informacje o wersji Xcode7.3)

Maszyna (macbook / mac z gładzikiem), którą tworzysz, powinna obsługiwać dotyk 3D.

Możesz go znaleźć w menu sprzętowym symulatora iOS.

Komentarz Pavela Alexeeva: pamiętaj, aby włączyć opcję „Force Click and haptic feedback” w Preferencjach systemowych → Gładzik

wprowadź opis obrazu tutaj

ipraba
źródło
5
Pamiętaj, aby włączyć opcję „Force Click and haptic feedback” w Preferencjach systemowych → Gładzik
Pavel Alexeev
1
Jako dodatkowy wymóg musisz skorzystać z najnowszego Symulatora, przez kilka minut próbowałem iOS 9.2 bez powodzenia - z 9.3 działa;)
Frederik Winkelsdorf
8
Szukano kilka minut i skończyło się uświadamiając sobie, że ja symulując przy użyciu iPhone 6, a nie 6S, dlatego przycisk został wyszarzone dla mnie
juliensaad
Działa tylko z gładzikiem. Jeśli masz podłączoną zwykłą mysz (nie jestem pewien co do magicznej myszy), to nie zadziała
Works On Mine
10

Nacisk siły w systemie iOS (np. Peek & Pop) nie jest ujawniany przez Xcode 7.0 ani Xcode 7.1 Beta's Simulator. Opcje dotykania przez nacisk są istotne tylko dla urządzeń watchOS w tych wersjach symulatora. Jeśli masz wersję beta Xcode 7.1, zauważysz, że opcja menu jest faktycznie wyłączona.

Dzięki Xcode 7.3 oraz środowiskom wykonawczym symulatorów iOS 9.3 i nowszym możesz przetestować funkcjonalność wglądu / popu za pomocą gładzika typu force touch.

Jeremy Huddleston Sequoia
źródło
Jak obliczyć, czy jest to Shallow Press czy Deep Press?
Vaibhav Jhaveri
9

Możesz włączyć 3D Touch w symulatorze. Dzięki tej bibliotece.

  • Po dodaniu Za pomocą kombinacji klawiszy Command, Control i Shift można włączyć funkcję 3D Touch.

  • Nie zapomnij dodać biblioteki tylko w środowisku debugowania . Wyklucz go ze środowiska wydania .

sanky009
źródło
Czy to tylko dla peep and pop, czy też dla domowych skrótów?
RileyDev
Tak, to tylko do podglądu i popu. Możesz użyć tego do skrótów do domu.
sanky009
Cześć: S! Funkcja Peek & Pop nie działa w Simulator 6s plus z Xcode 7.2, kiedy naciskam dłużej i używam kombinacji polecenia, kontroli i shift ... czy możesz mi powiedzieć dlaczego? Dzięki
A. Trejo
@ sanky009: Funkcja Peek & Pop nie działa na Simulator 6s plus z Xcode 7.2, kiedy wykonuję dłuższe naciśnięcie i używam kombinacji polecenia, sterowania i zmiany ...
Bhoomi Jagani
2

W przypadku opcji „Szybkie czynności na ekranie głównym” wykonałem następujące czynności:

  • utworzył obiekt UIMutableApplicationShortcutItem

  • umieścić go w launchOptions do UIApplicationLaunchOptionsShortcutItemKey

  • i to wszystko

Wygląda na to, że użytkownik dotknął ikony aplikacji w 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

(aplikacja: didFinishLaunchingWithOptions :)

Andrzej
źródło
Zrobiłem coś podobnego, aby to przetestować, ale fajnie byłoby zrobić pełny test. Istnieje kilka sposobów otwarcia aplikacji za pomocą skrótu do aplikacji. Jednym ze sposobów jest sytuacja, w której aplikacja działa w tle i umieszczasz ją na pierwszym planie za pomocą skrótu do aplikacji.
Kris Gellci,
2

Jest tu trochę kodu, który pozwala przetestować 3D Touch peek & pop w symulatorze. Pamiętaj, że jest to kod dla iOS 9.0, a niektóre metody wewnętrzne / prywatne zmieniły się w wersji 9.1, więc musisz wprowadzić kilka drobnych zmian (Wskazówka: słowo „Pozycja” zostało zmienione na „Lokalizacja” w jednej z nazwy metod) .

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

Zarówno to, jak i https://github.com/DeskConnect/SBShortcutMenuSimulator, o którym mowa w innych odpowiedziach, pozwalają dość kompetentnie przetestować 3D Touch bez rzeczywistego urządzenia.

Jordan Smith
źródło
1

Oficjalnie Xcode 7.1 obsługuje dotyk 3D, ale nie na symulatorze. Aby przetestować, musisz mieć aktualne urządzenie. Sprawdź ostatni akapit dokumentacji firmy Apple.

Dokument Apple

Dotyk 3D nie jest obsługiwany w symulatorze

Możesz jednak użyć narzędzi innych firm, aby przetestować go na symulatorze, takim jak ten, który wyróżnił Nicolas S. powyżej.

Jayprakash Dubey
źródło
0

Nowsze macbooki mają touchpad z włączoną funkcją wymuszonego dotyku. Myślę, że te opcje będą działać tylko w tym.

atulkhatri
źródło
0

To działało dla mnie z XCode 9 i symulatorem iPhone'a 8. W komputerze Mac przejdź do preferencji systemowych -> Gładzik -> Włącz mocne kliknięcie i haptyczne sprzężenie zwrotne .

wprowadź opis obrazu tutaj

Następnie mocno naciśnij dowolną część symulatora iPhone'a, aby wymusić dotyk.

karthik
źródło
Zrobiłem to, ale nadal nie działa :( Xcode 9.4.1, symulator iPhone'a X.
Supertecnoboff
1
@Supertecnoboff Musisz użyć gładzika zamiast myszy. U mnie działa na Xcode 10, ale nie było oczywiste, że muszę używać gładzika w MacBooku. Oczywiście należy zaznaczyć opcję „Force Click and haptic feedback”.
Ariel Bogdziewicz