Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android] Custom marker not showing when using Cordova-android 10+ #2886

Open
2 of 5 tasks
ebhsgit opened this issue Oct 23, 2021 · 2 comments · May be fixed by #2887
Open
2 of 5 tasks

[Android] Custom marker not showing when using Cordova-android 10+ #2886

ebhsgit opened this issue Oct 23, 2021 · 2 comments · May be fixed by #2887

Comments

@ebhsgit
Copy link
Contributor

ebhsgit commented Oct 23, 2021

I'm submitting a ... (check one with "x")

  • question
  • any problem or bug report

OS: (check one with "x")

  • Android
  • iOS
  • Browser

cordova information: (run $> cordova plugin list)

cordova-android: 10.1.1

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)

@ionic-native/core : 4.20.0
@ionic-native/google-maps : ^2.7.0

Cause
cordova-android 10+ switched to use WebAssetLoader, and the default scheme is https
The AsyncLoadImage file did not check for https scheme for localhost

More info here:
https://cordova.apache.org/announcements/2021/07/20/cordova-android-10.0.0.html
apache/cordova-android#1316

Current behavior:
The default Google Map red marker is shown

Expected behavior:
The custom image is used for the Marker

Fix
The gist is to change line 199 to this.

      if (iconUrl.startsWith("http://localhost") ||
          iconUrl.startsWith("https://localhost") ||
          iconUrl.startsWith("http://127.0.0.1") ||
          iconUrl.startsWith("https://127.0.0.1")
      ) {
//        Log.d(TAG, String.format("---->(201)iconURL = %s", iconUrl));
        if (iconUrl.contains("://")) {
          iconUrl = iconUrl.replaceAll("https?://.+?/", "file:///android_asset/www/");
        } else {
          // Avoid WebViewLocalServer (because can not make a connection for some reason)
          iconUrl = "file:///android_asset/www/".concat(iconUrl);
        }
      }

Screen capture or video record:

Related code, data or error log (please format your code or data):

Please share your project files on Github or others(Bitbucket, Gitlabs...etc).
If you don't want to share your project files, please create a demo project, then share it.

Screen captures, and/or native logs(such as Logcat, xcode logs) are appreciate.

Giving much information, you are waiting time is less.
Thank you for your cooperation.

Support this plugin activity

I appreicate if you give me a beer 🍺 from here

@ebhsgit
Copy link
Contributor Author

ebhsgit commented Oct 23, 2021

Issue also mentioned in #2871

ebhsgit added a commit to ebhsgit/cordova-plugin-googlemaps that referenced this issue Oct 23, 2021
chargePanelAndreas added a commit to Skandnet/cordova-plugin-googlemaps that referenced this issue Oct 28, 2021
FIX - mapsplugin#2886 - Custom markers not working for cordova-android 10+
@SoftwareAndOutsourcing
Copy link

SoftwareAndOutsourcing commented Feb 3, 2022

The solution above seems to solve the issue but customs markers will still not show if you use the Cordova local development server.

lempere pushed a commit to we-are-Joinup/cordova-plugin-googlemaps that referenced this issue Feb 8, 2022
boblepepeur added a commit to boblepepeur/cordova-plugin-googlemaps that referenced this issue Jun 24, 2022
FIX - mapsplugin#2886 - Custom markers not working for cordova-android 10+
yjseo29 added a commit to yjseo29/cordova-plugin-googlemaps that referenced this issue Oct 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants