Google recaptcha not working as expected in iphone - ios

I tried to search on the internet for this. I got a related question here but could not get a convincing answer.
I have a web page built in asp.net. I have google recaptcha on this page and is working fine on all desktop browsers and android mobile phones.
The problem is with iphones. The recaptcha does not show the image grid for the user to verify them. When the user touches the checkbox is simply gives a "tick" and lets the user through.
The model of iphone I have checked in is iphone 5C (safari) and iphone 6S (chrome 50) but I think the problem should be with all the models.
Please note it is working fine on simulators like chrome simulators.
The web page is as below:
http://www.infochoice.com.au/infochoice/contact-us.aspx
This is a live webpage so request you to please be careful and gentle in adding comments in it.
I have not added any code here in this question as I think it is more iphone device specific issue and has nothing to do with code.
Will update the question if requested.
Please help! Thanks in advance!

reCAPTCHA actively considers a user’s entire engagement with the CAPTCHA—before, during, and after—to determine whether that user is a human.
In cases when the reCAPTCHA risk analysis engine can't confidently predict whether a user is a human or an abusive agent, it will prompt a CAPTCHA to elicit more cues, increasing the number of security checkpoints to confirm the user is valid.
Therefore some users may just be shown a simple checkbox while others may face image grid verifications.
See this blog post for more details
https://security.googleblog.com/2014/12/are-you-robot-introducing-no-captcha.html

Related

Form Data missing on Microsoft Edge on iPhones

I have a java web application which works well on all devices, all browsers except for Microsoft Edge on iPhones. On Edge on iPhones, as the user fills in the input fields and proceeds to the next page, all data except for the date fields get lost. This problem doesn't occur all the time. Sometimes, all information is saved properly and nothing gets lost. Has anyone faced similar issue? Is there a way to get developer tools in Edge on iPhones to debug and see if anything comes up?

Google Actions on the Assistant app on iPhone no longer work

Our Action has worked as expected for years on iPhone, but something changed and now access is blocked for our customers.
How to reproduce the issue: Simply go to Assistant on iPhone and say "Hey Google, talk to the mobile concierge" (our Action). Instead of launching the Action, Assistant says "I need permission before I can use your personal info for anything. To change your settings, just open the Google Home app on your phone. Once that's done, ask me again!".
My question: Can Google confirm that this is a bug and not expected behavior? (Specifically, that a user must have 'Personal Results' turned on in order to access an Action on iPhone.)
I truly hope this is not expected behavior, but even if it is there are 2 issues:
instructions that are provided to users when Personal Results are turned off are wrong. Pointing users to the Google Home app is incorrect. Many iPhone users won't even have the Google Home app installed. But if you do have it installed, launching it and then following Assistant's directions does not lead to being able to open the Action. The correct instructions are to stay in the Google Assistant app, click on your profile pic, go to Devices, and then select your iphone. There, you can turn Personal Results on/off.
The additional problem is that upon testing, I already had Personal Results turned ON. In order to get access to our Action, I had to turn it off, and then turn it back on again. So this pretty clearly seems like a bug.
As an aside, we don't collect any personal information as part of our Action so I am unclear why Google implemented a change involving the Personal Results option as it relates to the ability to launch Actions like ours. All it has done is made it so that our customers can't use it from a huge percentage of phones out there (iPhones), and phones are the only device we are targeting for use with this Action.

Facebook pixel event PURCHASE not registering iOS-sales

We have an Woocommerce site and run ads on Facebook and Instagram. When potential customers click on these ads our website is loaded in the in-app browser that Facebook and Instagram uses. What we've discovered is that the Facebook pixel is not sending any purchase data back to Facebook regarding users on iOS. This again means that it's registered as 0 conversions in iPhone and iPad, skewing the audience and algorithms for optimised ad delivery. (The data comes back correctly on Android and computers.)
We've tried several plugins to see if it's plugin related issue, among them Facebook for Woocommerce, Pixel Caffeine and PixelYourSite. No change there.
What is also interesting, is that the metrics for iOS dropped to zero at the same time I switched from another theme to the Divi-theme (which is a page-builder theme for Wordpress). So it may seem like the error is directly related to the theme, but then again there must be something iOS-specific since it works on all other devices, and the theme change though suspicious may be irrelevant.
TLDR: The pixel tracking works exactly like they should on all devices except on iOS in-app browser where the website is displayed as it should be, but where the pixel is not registering purchases.
Edit: We receive other pixel data from iOS as well, it seems that the order confirmation page is the one that is "blocked".
Example of landing page we use for our ads: https://www.friskforlag.no/frisk-graviditet/
Received help from Elegant Themes, developers of the Divi theme. There is a bug in the current version of Divi that will be fixed in the next 2-3 versions. The solution was to comment out a line of code in the core > functions.php file, and after that we were able to track purchases on iOS again.

Cordova ios back button issue

We have developed a mobile application in cordova, after undergoing the application on Apple store 20 days again later, we received a communication in which Apple refuses to submit our application for the following reasons:
Reasons :
10.6: Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good, it may be rejected
----- 10.6 -----
We found the following issues with the user interface of your app:
Specifically, there were no back buttons on social media web views displayed in the app. In order to return to the main app from a community page, such as Facebook or Twitter, the app had to be closed and re-launched.
These examples identify types of issues discovered in your app but may not represent all such issues. It would be appropriate to thoroughly evaluate your app to address these types of issues.
In fact we use links to our pages on social networks, it works well on Android, because it simply click the back button to return the phone. Thing that is not obvious on an iPhone.
Is there a method to solve this? A webview? a popup with a close button ? an HTML5 iframe ?
THANK YOU !
You can use official InAppBrowser plugin (it should have a close button x), or just open these links externally in browser (safari).
In addition, IMHO, you are risking to lose your precious users by opening social links on top of your (or inside) your own app. People can get distracted and just browse away.

Facebook.com and the iOS7 Captive Portal Detection

I created a router that connects to facebook to get some info before a user may access the internet.
First they connect, get the Captive Portal Page and then continue to a facebook login. Since the upgrade to iOS7 it fails to load the facebook login page. On my mac with the Captive Portal Assistant it has no problems and even on the phone itself while using the iOS version of safari there are no problems.
What is going wrong here? Is facebook filtering request from the iOS7 Captive Portal Assistant or is Apple doing some sneaky stuff here?
It seems the problem is widespread and only related to facebook.
Update: I worked with the beta's and they worked fine a few weeks ago. Now with the same beta version it doesn't anymore. So another point for the facebook explaination.
Regards, Cas
This problem was fixed by Apple since IOS 8. But as all iPhone 4 users can't upgrade to IOS 8 this problem is still one.
The IOS 7 devices check for the following domains:
www.appleiphonecell.com
captive.apple.com
captive.apple.com
www.apple.com
www.itools.info
www.ibook.info
www.airport.us
www.thinkdifferent.us
Whitelisting this domains stops the login mask to be appearing as the IOS device thinks, that the internet is working as expected. This way you have control on the things which happens, as the IOS device does not interrupts anything, if you use a normal browser for login.
If you don't whitelist the domains, the following thing happens. I debugged it on routers with several IOS devices and they all did mostly the same:
If you connect to a wifi, the IOS device tries to connect to one of the domains, which are listed above. If it can contact one of the domains, it tries another one. If it can't, it starts the redirect, which is controlled by the router. Sometimes it query one or more domains, before it thinks, that the internet is working.
After the check, the login screen redirects to your router and then to the login screen of your captive portal. This behavior stayed the same as it was on IOS 6 or before.
Now you start an oauth login to a 3rd party provider like Facebook, Google or Twitter. And now the difference appears. You can check it on a router, if you run it in debug mode. As the IOS device goes to an other domain for oauth login (like www.facebook.com) the iPhone thinks, that something changed and starts to query one of the apple domains, which are listed above. The user sees only a white screen and in the background the IOS device tries to contact one of the domains repeatedly. For the user this seems to be an error, as the screen stays white or takes very long to show the login on the 3rd party provider. Sometimes it stops loading and nothing happens forever.
To avoid this behavior, you must whitelist the above listed domains. This is a not a common behavior for IOS users, but this way, your browser have the control of the login session and the IOS device don't interrupt it as it does with the login screen.
Some shallow parts of information is reported on the following sites:
https://supportforums.cisco.com/docs/DOC-36523
http://www.cadincweb.com/why-your-apple-ios-7-device-wont-connect-to-the-wifi-network
https://discussions.apple.com/thread/5355766
I couldn't find a detailed description of the problem and found the one above myself by debugging all parts with some routers and IOS devices like iPhones and iPads.
I've just tested various router settings and noticed that iOS 7 is NOT trying to contact above mentioned sites/URLs when router's DOMAIN field is blank.
My guess is that blank domain points to a consumer-type network set up and Apple is not expecting a Captive Portal at such network. If you have access to administer your router see if you can clear out the DOMAIN field (and restart/retest).
I found my solution to my problem. (a while ago, but I found this post again)
First I found out, iOS makes 3 calls, first to check, second to get the page that needs to be displayed, third to check again after the pageload. Then I discovered, for every POST or GET action made by the page, regarding of the source page was refreshed, iOS checks for an active internet connection. Since the facebook api makes a lot of calls, the browser starts stalling(possible in combination with QoS on my router) and freezes the page.
My Solution:
Since I am in control of the DNS records of the Router I use, I redirected all domains towards my own server.
First I saved the check request, this to later identify the user when he comes back for the 3th request.
When the second request comes I just display an info window that every thing is right, and the user has to click the "Done" button.
The page is loaded, so iOS checks again, but i recognize the user so I display the OK-code Apple also displays. The "Done" button us show, and the user has "internet", according to iOS..
On the page that I display, I instruct the user to open the webbrowser. When he does, he opens a page and my portal with the right page is shown(I can detect this based on the Browser Agent). Then my facebook api start doing its job, and of we go :-)
Let me know if someone needs some more info on how to detect or maybe even a code sample if necessary.
Extra Information
To capture a user on your own server, redirect every request to your processing page using for example .htaccess. The request is made to a domain with a subfile e.g:
http://captive.apple.com/getrT09Nx7G/YNrnUOulnDj/3cfrq3M40iR.html
To keep multiple users apart, use the unique url the device tries to contact when checking for internet, in this case: /getYT09Nx7G/YN1nUOulnDj/3cfMq3M40iR.html

Resources