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

In android, when click a href with img returns img src on onCreateWindow #951

Closed
SimJinwoong opened this issue Aug 24, 2021 · 4 comments
Closed
Labels
bug Something isn't working

Comments

@SimJinwoong
Copy link

SimJinwoong commented Aug 24, 2021

Environment

Technology Version
Flutter version 2.2.3
Plugin version 5.3.2
Android version 10
iOS version
Xcode version

Device information: LG G7, Samsung Galaxy Z flip

Description

In android, when click a-tag with img-tag,
createWindowRequest.request.url returns img-src on onCreateWindow method.
<body> <p>Open link in a new window or tab: <a href="https://www.w3schools.com" target="_blank">Visit W3Schools!</a></p> <p><a href="http://www.google.com" target="_blank"><img src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png"/></a></p> </body>

When I modified the following in the onCreateWindow function of the InAppWebViewChromeClient.java class, I was able to get the correct result.
`
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, final Message resultMsg) {
WebView.HitTestResult result = view.getHitTestResult();
String url = result.getExtra();
Log.i(LOG_TAG, "onCreateWindow url = "+ result.getExtra() + " , type = " + result.getType());

//Link with Image
if(result.getType()==HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
  Message href = view.getHandler().obtainMessage();
  view.requestFocusNodeHref(href);
  String url2 = href.getData().getString("url");
  Log.i(LOG_TAG, "onCreateWindow url2 = "+ url2);
  if(url2.isEmpty() == false)
    url = url2;
}

}

`

Hopefully it will be improved in the next version.

@SimJinwoong SimJinwoong added the bug Something isn't working label Aug 24, 2021
@github-actions
Copy link

👋 @SimJinwoong

NOTE: This comment is auto-generated.

Are you sure you have already searched for the same problem?

Some people open new issues but they didn't search for something similar or for the same issue. Please, search for it using the GitHub issue search box or on the official inappwebview.dev website, or, also, using Google, StackOverflow, etc. before posting a new one. You may already find an answer to your problem!

If this is really a new issue, then thank you for raising it. I will investigate it and get back to you as soon as possible. Please, make sure you have given me as much context as possible! Also, if you didn't already, post a code example that can replicate this issue.

In the meantime, you can already search for some possible solutions online! Because this plugin uses native WebView, you can search online for the same issue adding android WebView [MY ERROR HERE] or ios WKWebView [MY ERROR HERE] keywords.

Following these steps can save you, me, and other people a lot of time, thanks!

@Manuito83
Copy link
Contributor

Thank you, this is a key fix for Android.

@pichillilorenzo
Copy link
Owner

Merged 6b7e4b8

Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants