V1.3.x build breaks simple WebView / Location app on Android

Build the app on V1.2.x and the app starts, asks for geo permission and then loads a web page as expected.

Build the identical in V1.3.x and the first thing you notice is that the app doesn’t ask for permission. The second thing you notice is the WebView is not loading the external content.

Modify the web view to use .loadHTML() to load some simple html eg <a href=“https://www.google.com”>Click Here</a> and that appears OK. But click the link and nothing happens.

The WebView in question has the following tied to it

  • URISchemeHandler
  • BeginLoading
  • PageLoaded

Any ideas. I can’t see anything in the logs which says why it’s not behaving and I did perform an Uno Clean after switching environments.

Thanks

matt

Thanks for reporting this!
Can you share an app project for reproducing this as well? (If you upload it to https://www.dropbox.com/request/ZgndLtJQm5eGzG9cicGK it’ll only be accessible to Fuse employees).

Also; have you checked whether the behavior changes if you remove the URISchemeHandler? I see there were some changes to that in 1.3 (supposedly bugfixes but we may have broken something in the process there).

Thanks again!

Removing the URISchemeHandler allows the webpage to work.

When it’s there it doesn’t seem to be calling the URISchemeHandler as I have a console.log at the start and it doesn’t appear.

Oh man … please tell me there is a hotfix for this and I don’t have to spend the rest of this week migrating this app to Native or PhoneGap :frowning:

If you can provide us with a reproduction case as requested above then I’m sure we can work out what’s going wrong. :slight_smile:

Uploading now … it’s same project that I uploaded for demo the Android Oreo failure I think - we haven’t been able to progress it until V1.3.x came out.

Anyway, should be there in 2 mins.

There is already a ticket open from V1.3.0 on this I just found so it looks like it’s not going to be a quick fix.

Yes, just came across that one after digging a bit here. I’ll check what the real experts can say about this one.

As for the issue with the geo permissions that seems to be less of a problem:

  • Prior to 1.3 we always explicitly uninstalled the old version of the app from your Android device before installing your new build. This would then mean that for every new deploy the app would have to request permissions again.
  • However, on Android 8 you get an exception from adb if you try to uninstall an app that is not already on the device (previous Android versions just ignored this) - and this broke Fuse’s script for deploying to device, so we removed the explicit uninstall. (It was never really needed anyway as adb can handle this nicely).
  • This means that if you now deploy your app to a device where it has already been installed (and been granted permissions) then it won’t need to request it again.

To verify this you can manually uninstall the app from your device and then deploy as usual. The permission popup should appear as expected.

Hi again Matt,

As discussed in the ticket on the public repo we’ve localized the issue with the WebView.
We’re aiming to get the fix into our upcoming 1.4 release which is already in QA testing (e.g. it should be out very soon, but probably not this side of the weekend).

If you’d like to keep working with the current 1.3.2 release (until 1.4 arrives) then you can do that by checking out your own local version of the libs release, reverting the guilty modification mentioned here, and then building your app using local libs as described here.

Thanks Remi.

I’ll watch the updates so I can cross platform but I’m building a simple Android native app in the interim to get round the issue.

There’s a new QA-release of 1.4 out now with the new fix.
You can download it here if you’d like to test it out before it gets promoted to a regular release.

Thanks Remi, much appreciated. I’ve got the native app up and running for now but I’ll see if I can download that and check it.