How do I make my game work on all phone? - Webview issue (?)

0 favourites
From the Asset Store
_______ Huge collection of metal fixtures ________
  • Hi,

    I'm developping an awareness game that is being deployed in Africa. Unfortunately, lot of people there have phones without the latest webview update, which is quite annoying because it drastically limits the reach of my game. I can't tell to every single person to install the update in addition to the game..

    It’s a major limitation I wasn’t aware before starting using Construct and a true downside of the program..

    Is there a solution for that? I mean for example to automatically force the update webview with the installation of the game.

    If not, is that possible to do the followings (in decreasing order of priority)?:

    - Embeded the last webview version within the game

    - Change the version of webview needed or even better to deactivate it

    - Add a link at the start of the game when it’s not working to redirect to the android update page? But I guess it’s possible as the game won’t work..

    Or any other solution to make my game work on every phone ???

    Thanks in advance, any help/tips would really help me!

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • You say the webview is out of date, but then you ask:

    Add a link at the start of the game when it’s not working to redirect to the android update page?

    The message shown when the webview is out of date already does show a link for the user to install the right update. So are you sure you are seeing this message? Are you sure it's to do with the webview version and not something else?

    FYI the update should be there if the device has auto-updated from the Google Play store any time in the past ~3 years. It's hard to imagine why this would not have been the case. If the devices are failing to update due to running out of storage, then there won't be room to bundle a browser engine with it either, so that seems like a non-starter - but it's not clear that's the reason the devices are out of date. If they really are using very old versions of the Android WebView, I'm keen to find out the reasons behind this, and would be grateful if you could shed some light on that.

    We have asked Google to add a minimum required WebView version for Android apps, but so far there doesn't appear to have been any progress on that. More customers asking in that issue might help.

  • Thank you for your reply Ashley!

    Are you sure it's to do with the webview version and not something else?

    I’m no expert but I’m pretty confident it is the WebView because every time I update the Android System WebView on someone phone where before it wasn't working, it is now working.

    For example, I have myself an old phone on which it wasn’t working (which a WebView version 71.0.3578.99). I updated WebView to 80.0.3987.119 and now it’s working fine.

    So are you sure you are seeing this message?

    There is no message, I was just saying it would be good to have the possibility to add a warning message with a link to update if WebView is out of date.

    It's hard to imagine why this would not have been the case.

    Unfortunately, people there have crappy phones and, as you said, try to save space and data so they don't keep their phones up to date.. Actually some people do the same in Europe so those cases occur more often then what I thought in the first place, especially for my target audience. And that why I really need a solution because I can’t tell myself every person to update their WebView…

    So is there a way to either:

    - Embedded/integrate the update of the Android System WebView within the game to automatically make it work?

    And/or

    - in case the WebView is out of date on the phone and the game doesn’t work, put a warning message saying something like “please update your phone by clicking this link” or so?

    I'm keen to find out the reasons behind this, and would be grateful if you could shed some light on that.

    I'll continue to collect data and share it with you as much as I can.

    More customers asking in that issue might help

    Thanks, I'll ask to Google myself to show support but it would be very nice and needed to have some possibilities from Construct because Google as being a big company might take some time..

    Here is the link to my app in case you want to check for any other reasons it might not work on some phones: play.google.com/store/apps/details

  • PixelImpact That's is an Awesome idea developing an App to help people and families be aware of how to avoid Ebola, I hope goes well and that you can fix all the issues so they can make most of it, you never know how many lives you could save.

    Good luck

  • There is no message, I was just saying it would be good to have the possibility to add a warning message with a link to update if WebView is out of date.

    When the WebView is out of date, it does show a message. It says "Software update needed" with instructions.

    WebView version 71.0.3578.99 should be able to run C3 runtime games just fine.

    So I think we're back to square 1 - I doubt it's solely because of an old WebView version. There must be something else going on.

  • When the WebView is out of date, it does show a message. It says "Software update needed" with instructions.

    Actually one person told me that message was displayed but many didn't and it didn't show up on my old phone. And I guess if people are contacting me for help, it is not enough..

    So I think we're back to square 1 - I doubt it's solely because of an old WebView version. There must be something else going on.

    It's both a good news and a news, thanks for the help :)

    But why would have the update of WebView made it work then? And what can I do find the issue (and the solution) if it not that?

    That's is an Awesome idea developing an App to help people and families be aware of how to avoid Ebola, I hope goes well and that you can fix all the issues so they can make most of it, you never know how many lives you could save.

    tarek2 thank you so much! We indeed truly believe this game can improve people health. It's our first big project (in partnership with Doctors Without Borders) and we are aiming to make more games on major environment, society and health issues. Hopefully with Construct if I can make sure the games can to use by everyone ;) here is our website (in French so far) for more info: pixelimpact.org

  • I think in the short term, the pragmatic thing to do if you just need it to work now is to downgrade the project to the C2 runtime and publish with that. It supports older browsers so should keep working even on devices that are missing years of software updates. The C2 runtime is scheduled to be removed in July 2021, but you can keep using it anyway for the time being.

    In the mean time I do want to figure out what is going on here. It's possible there's a problem with Construct, but it could equally be something else like a driver bug on certain devices. I think the best next step to diagnose the problem would be to find an old device, connect it up with USB debugging, and check for any errors being logged to the browser console. The tutorial checking for errors in browsers has some info on that. It could also involve several different problems, so you may need to repeat this a few times and see what's going on in each case.

  • Hmm, just thinking - the device you updated from v71 to v80 and started working - what model device is that?

    If it has a Mali GPU, this might be an old WebGL 2 bug that was fixed, but might still be affecting old devices with out-of-date software.

  • Thank you very much for being so committed to fixe the issue!

    I think in the short term, the pragmatic thing to do if you just need it to work now is to downgrade the project to the C2 runtime and publish with that.

    Ok for the downgrade to C2 runtime. If it make it run on more devises, it will be great!

    Few questions on it:

    - Would it means any other implications to downgrade or all the game will work the same?

    - When you say "to be removed in 2021", you mean not usable in Construct but the game will still work fine right?

    EDIT: I can't go back to C2 runtime because of compatibility issues with BBCode, Speech synthesis plugin, wait for previous action, typpewritter, etc etc...

    About the debugging test, I can try. However, the old phones are not mine (and I updated the only one I had) and in Africa so it's difficult to perform a complet test on them. I can bring devise information, system info etc but difficult to have more. I'll try my best anyway.

    Hmm, just thinking - the device you updated from v71 to v80 and started working - what model device is that?

    It's a Samsung note 3 SN900, so with indeed a Mali GPU, you're guessing right!

    So what does it mean in pratical terms?

    Also FYI it seems not working on a HUAWEI Y9 2019 with Android 9 (EMUI 9.0.1) and WebView 3.3.5.

  • OK, so I checked our code logs, and last year we had a bad bug with WebGL 2 causing blank screens on Android devices with WebGL 2+. At the time we had some really ugly workaround code. So when the fix in Chrome 75+ came out, we deleted the workaround code. However the fact that there seem to be loads of out-of-date Android WebViews out there - the reasons for which are still a complete mystery to me - means we probably need to keep that workaround indefinitely, so apps on old Android devices don't still suffer the bug.

    This probably explains at least some of the "blank screen" cases, and everything adds up with the Samsung Note 3 SN900: a Mali GPU device that had an issue with v71 which was fixed in v75 and works in v80.

    To make sure that's fixed, I've added in (slightly cleaner) workaround code for the next stable release: any Android device using Chrome v75 or older will disable WebGL 2. This shouldn't affect any device with up-to-date software, but will stop devices with out-of-date software running in to the WebGL 2 bug.

    If you see a "Software update needed" message, that means the WebView is really old (3 years old or more). As to why that happens... 🤷‍♂️ The message does include instructions to update though, which should fix it.

    To downgrade the project to the C2 runtime you may well need to make a range of changes to your project. You'll have change everything it identified if you want to take that route.

    WebView 3.3.5.

    No such WebView version ever existed, so this must be a mistake. Do you know what the correct version is? The Huawei Y9 2019 has a Mali GPU as well, so assuming its WebView version is older than 75, could be the same issue if you saw a blank screen, but since we're talking about multiple issues here, you need to make sure you're clear about how it's not working. Did you see the "Software update needed" screen, a blank screen, or something else?

  • Phones also have their own default browsers. Not all use chrome with latest release. For example Samsung internet browser, latest release runs on chrome 75. If they haven't updated it, who knows which chrome version it runs on.

    Even if bug issue is filed and chrome fixes it. It takes forever for thous get into some custom browsers. So in the end it's all one big mess.

  • Oh wahoo, thank you so much for everything, really appreciate the follow-up!

    So just to be sure I understand well: my game exported with the next Construct stable version should work better on old Android and avoid the blank screen, right?

    Or will it be still a mess as SnipG is saying?

    If you see a "Software update needed" message, that means the WebView is really old (3 years old or more). As to why that happens... 🤷‍♂️ The message does include instructions to update though, which should fix it.

    Yep if it is that old, well too bad for them but as you said, in this case there is a warning message so it should be fine (one of the person that told me about the game issue got this and was able to update it by himself so for this scenario it’s fine)

    To downgrade the project to the C2 runtime you may well need to make a range of changes to your project. You'll have change everything it identified if you want to take that route.

    Ok but no need with your first solution right?

    No such WebView version ever existed, so this must be a mistake.

    Well here are the screenshots of the phone: https://pixelimpact.org/Huawei-phone.jpg According to the onwer of the phone, it’s the blank screen issue without any warning.

    Actually, many phone in Africa can be Mali GPU as they tend to be quite all the same them (cheap Chinese phones). I’ll try to know more about it.

    the reasons for which are still a complete mystery to me

    Same here.. I guess people are unaware of why it’s important, especially people in Europe with old phones that are not very “Tech-enthusiasts”. In Africa, I think it’s more of a data/storage issue.. Or as SnipG is saying, lot of people use the default custom apps and not regular Chrome people with recent/good phones use so..

  • I can only say it should fix it for this particular old WebGL 2 bug. The problem with issues like this where there are vague reports of problems across a scatter of different devices, is it's hard to know whether it's all the same problem or a range of different problems, and if there are multiple problems, then how many devices are affected by any one particular problem. Without a full diagnosis for each device, I can't say how much this will help. I guess we will make the release, you can update your app, and then we'll find out.

    The screenshots of the phone only really deepen the mystery: the "WebView" app version 3.3.5 looks like an unofficial app, and is possibly unrelated. The "Android System WebView" app is the official one, but no version appears to be noted. The best way to check is to display the browser user agent string somewhere in the app (since you can also have multiple webview apps installed this way will clearly identify which one is in use). Note the full text of the "Software update needed" message also includes the user agent string, which is important diagnostic information to pass along if you can (it identifies the specific WebView reason and the exact features it's missing that prevent it running the app). Perhaps some Android manufacturers ship their own unofficial WebView app? I've never heard of that before, so I doubt it, but lots of manufacturers do awful things to their devices. The Android System Webview is an official component of Android and updates independently of Chrome.

  • I can only say it should fix it for this particular old WebGL 2 bug.

    Ok so wait and see and fingers crossed!

    Any idea when the update will be published?

    I will continue to gather data and post it on this topic, hopping it will help.

    The best way to check is to display the browser user agent string somewhere in the app

    How can I ask him to do that?

    Note the full text of the "Software update needed" message also includes the user agent string, which is important diagnostic information to pass along if you can

    Again, on the about 10 issues feedback I got, only one was with the warning message (but again, not very reliable survey).

    erhaps some Android manufacturers ship their own unofficial WebView app? I've never heard of that before, so I doubt it, but lots of manufacturers do awful things to their devices.

    :/

  • Any idea when the update will be published?

    Hopefully Monday.

    > The best way to check is to display the browser user agent string somewhere in the app

    How can I ask him to do that?

    I meant that you modify your project to display the user agent string somewhere. Maybe the about/credits screen.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)