App doesn't respond to touch events after resume

I’ve moved a web app to native with Phone Gap build. When running on iOS 11.3.1 the app stops responding to touch input after it resumes from a sleep while my app is active. This seems to be a known issue:

I’d like to install this forked plugin from github that fixes the problem:

I’ve followed the phonegap build directions here to do that without success:

https://phonegap.com/blog/2016/02/16/git-plugins/

I’m adding the following to my config.xml file:

 <plugin spec="https://github.com/lasselaakkonen/fastclick.git" source="git"/>

I’ve also tried:

 <plugin name="cordova-plugin-fastclick"  spec="https://github.com/lasselaakkonen/fastclick.git" source="git"/>

Any ideas?

Thanks in advance!

Nate

There’s a fastclick option in Project Properties. What is it set to in your project right now? Does changing it help?

Hi George,

Yeah, the issue is with FastClick. Apparently with iOS 11.3 Apple changed the way they process their timestamp event and it now gives a negative value after the device resumes which fails FastClick. See this:

So if I disable fastclick it fixes the issue, but I’m running the app (native via phonegap build) on iOS devices which as you know use the Safari webview and still have the 300 ms delay for click events…so the user experience is horrible if I disable FastClick.

Is there a way to import the FastClick.js library with the modifications some of these guys have made to handle the negative timestamp? Or is there another way around this?

Bottom line is that I really need FastClick to work and yet I also can’t have the app unresponsive after the resume event :blush:

Thanks!

Nate

This is interesting information. We had been planning to drop Fastclick in the next version of AppStudio. Fastclick themselves say:

Note: As of late 2015 most mobile browsers - notably Chrome and Safari - no longer have a 300ms touch delay, so fastclick offers no benefit on newer browsers, and risks introducing bugs into your application. Consider carefully whether you really need to use it.

It looks like this specific issue is a bug in WebKit. It has been fixed there, but there is a lag before these fixes make into Mobile Safari. Apple currently has MS 11.4 in beta - it could be fixed any day or we may have to wait.

You can download a version of FastClick with the workaround solution from the link in Nate’s email. If you save that into c:/Program Files (x86)/NSB AppStudio/nsb/library, AppStudio will use the amended file.

Next build of AppStudio, we will check if Safari has the fix. If not, we’ll include this version of Fastclick.

Hi George,

Thanks much for that. I’ll try what you suggest in the a.m. (night here now).

For what it’s worth, in my searches the information was that the problem was still there in 11.4 beta.

Regards,

Nate

Hello George,

I have been having this issue since update 11.3. Updating iOS to 11.3.1 got better, but disabling FastClick is a mess.

Thanks

Just for follow up. I placed modified fastclick.js in the NSB directory as per George’s instructions and that solved the problem for me.

Nate

iOS 11.4 should be out soon. We’ll put the updated Fastclick.js into the next build.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.