Open PatriciaMoller opened 7 years ago
A sketch for a more instructive error page: I think a more visible "Refresh" (or maybe call it "try again" or "retry". I just used "refresh" that what I've been doing during testing) is a good idea, so the player can quickly try to start again. I think the page as it is is a bit like hitting a wall.
Instead of listing how to do things for every OS, is it possible for the game to find out what OS and browser the player is using, and insert appropriate instructions based on that info? Luckily iOS, Android and Windows all seem to have put location permissions under "Privacy", with some minor differences in names and how to allow apps to use location data.
iOS/Windows and Android (at least 6.0.1, which I have on my Samsung) have their list of permitted apps in different places. iOS and Window have theirs on the same page as you turn Location on. Android makes you go a step back, go to "App permissions", find "Location" in that list, and THEN allow the app to use it.
The general template would be somewhere along the lines: "* Go to your phone's settings [OS's settings icon]
Make sure your brower is allowed to use location data: (This part depends on which OS you are using) For iOS/Windows: "Find [name of browser] in the list below. Make sure the switch is on" For Android: "'Go back to "Privacy" then go to "App permission" Go to locations and make sure [name of browser] is switched on"
I only guessing "turning on location and allowing the specific app to use location" is or at least is becoming more standard. I'll have a peek is that's the case on other manufactures and older version. What's the oldest version Android/iOS/Windows supported/reasonable to expect? Should we be considering Symbian, even though it seems to have been discontinued, and BlackBerry?
I agree that the current solution is not really helpful for resolving or even understanding the geolocation issues. We should replace that by something better as that is an essential part of the gameplay (no position = no playing).
The refresh button could be easily added. The user could solve the issue (for example: enable location services) and then go back to the page and press a refresh button.
We could try to find out the type of OS running on the device, there are even some libraries for that.
We could have some general instructions that would be shown if detection fails. I suppose that we will be supporting the iOS, Android and Windows as others are not that many in numbers.
As for the versions I am not sure, the instructions could be kind of general, as the specific location could change (not very likely, but still).
I do not think we should be supporting really old versions that are only found on very old devices (if they are able to run it all, then it is fine, if not, well, too bad).
I am not sure about the Symbian and BlackBerry. I will not be able to get myself any of those and really have no idea what the state of affairs is. My old Nokia phone would not be able to run that kind off game (I hope, as the tiny screen would not have allowed to do anything meaningful anyhow).
As for the errors that can happen, this page has information on possible error codes. The denied permission is just one of those. In case of the other two, it could either be somewhat related to location services not being enabled or not. Having a refresh button to try again would still be ok to show.
An illustration for the error page here
If I understand things correctly, Symbian seems to discontinued since ~2013. Blackberry seems to be rarely occuring. Might as well focus on Android/iOS/Windows?
It seems like for Android, the location permission setting are usually under the privacy/personal settings.
I was unaware there were different error codes. The first one, "PERMISSION_DENIED", is rather self-explanatory, they have to turn on permissions. However, what can the player do if the other two occur? Refresh and hope for the best? If so, the error message should say so, and reassure them that their progress will be kept (if that's the case?)
We should probably focus on the systems with biggest market share. I suppose that iOS, Android and Windows should be enough. Giving general explanation is also a good thing, in case something changes in the near future or the person is using a different OS (and there are plenty of those in Asia).
We should not try to target the really old versions of any OS, those have already been long abandoned by the companies themselves.
In case of the other errors, there is not much to be done but hit the refresh button. Although, that should not be happening normally. The positioning data could be inaccurate or coming through in a rather slow tempo, but that should mostly be working somehow.
We might not even need a refresh for that. We could add some button ourselves that would try to get positioning again.
As for the progress, yes, everything someone does is saved into the database. Answer some question once and that is there for the taking, refresh and see the state being fetched from the service. Each Game entity is understood by the system and kept track of (especially for an authenticated user).
One thing to mention is that there is no progress to save until one could really play the game. We are currently talking about the initial location fetching before the playing begins. The connection could be lost at some point of time, but that will not stop anything and the system will be waiting for it to come back (there could be some temporary location drop out and it could return quite fast). I have not seen any occasions of location information becoming unavailable for a long periods of time (unless one goes into the basement).
It hit me, does the player REALLY have to go through the phone's settings menus to change this? Is there no way to have a prompt/pop up where they can just press "yes"? (Though I guess users might get suspicious by such messages) Or is there a bunch of security/privacy measures that denies a webpages to access such settings?
It's not really up to us. Changing privacy settings cannot be changed directly from browser currently.
Ah, okay. I can just imagine the potential risks if it was possible. But it would have been neat in this case
The code is running in the browser. It would be highly inappropriate to allow it to directly influence inner workings of the OS. It might be possible for native apps to request that kind of permissions and allow the user to just press the button on a pop-up, but we are just running in the browser with all the goods and bads that brings us.
I just noticed something!
If I beforehand deny my phone's browser access to my location, I will be prompted to allow it again when trying to start an Activity. (translation: "Internet" needs access to location to be able to share with this website)
This does not happen on iPhone/iOS it seems. Those settings are either "Never" or when it's needed. And never means never. However since iOS don't have many different versions the same way as Android, perhaps it will be a bit easier to cover more ground with less variations of the instructions
If the site detects that the GPS is not turned, the user is notified. In addition, the site could detect phone model and thus be able to instruct how the GPS is turned on. (Or the user can just press "OK" if they know how to do it)
iOS devices are rather consistent, as most of them operate similarly. However, Android and some of the lesser used OSes might be trickier as they look different between manufactures and OS version. How many versions of the guide are needed is a question.
Screenshots for Android 6 on Samsung available here