xamarin / Xamarin.Forms

Xamarin.Forms is no longer supported. Migrate your apps to .NET MAUI.
https://aka.ms/xamarin-upgrade
Other
5.64k stars 1.88k forks source link

[Bug] [iOS] WebView's EvaluateJavaScriptAsync does not trigger JS function if you are passing class object #15805

Closed DordeBunic closed 10 months ago

DordeBunic commented 10 months ago

Description

Steps to Reproduce

  1. You can use included sample project
  2. Just build project included in attachments
  3. EvaluateJavaScriptAsync should trigger action testFunctionWebView and pass class parameter person

Expected Behavior

User should get Alert message from JS with message John.

Actual Behavior

Nothing happened

Basic Information

Environment

Show/Hide Visual Studio info ```Visual Studio Community 2022 for Mac Version 17.6.3 (build 421) Installation UUID: d071f9f5-24f9-4716-949f-9e210b6bed28 Runtime .NET 7.0.3 (64-bit) Architecture: X64 Microsoft.macOS.Sdk 13.1.1007; git-rev-head:8afca776a0a96613dfb7200e0917bb57f9ed5583; git-branch:release/7.0.1xx-xcode14.2 Roslyn (Language Service) 4.6.0-3.23180.6+99e956e42697a6dd886d1e12478ea2b27cceacfa NuGet Version: 6.4.0.117 .NET SDK (x64) SDK: /usr/local/share/dotnet/sdk/7.0.307/Sdks SDK Versions: 7.0.307 7.0.306 6.0.413 6.0.412 MSBuild SDKs: /Applications/Visual Studio.app/Contents/MonoBundle/MSBuild/Current/bin/Sdks .NET Runtime (x64) Runtime: /usr/local/share/dotnet/dotnet Runtime Versions: 7.0.10 7.0.9 6.0.21 6.0.20 Xamarin.Profiler Version: 1.8.0.49 Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler Updater Version: 11 Apple Developer Tools Xcode: 14.3.1 21815 Build: 14E300c Xamarin.Android Version: 13.2.1.2 (Visual Studio Community) Commit: xamarin-android/d17-5/a8a26c7 Android SDK: /Users/isatis/Library/Developer/Xamarin/android-sdk-macosx Supported Android versions: 12.0 (API level 31) 13.0 (API level 33) SDK Command-line Tools Version: 7.0 SDK Platform Tools Version: 34.0.3 SDK Build Tools Version: 32.0.0 Build Information: Screenshot 2023-08-20 at 13 10 11 Mono: d9a6e87 Java.Interop: xamarin/java.interop/d17-5@149d70fe SQLite: xamarin/sqlite/3.40.1@68c69d8 Xamarin.Android Tools: xamarin/xamarin-android-tools/d17-5@ca1552d Microsoft Build of OpenJDK Java SDK: /Library/Java/JavaVirtualMachines/microsoft-11.jdk 11.0.16.1 Android Designer EPL code available here: https://github.com/xamarin/AndroidDesigner.EPL Eclipse Temurin JDK Java SDK: /Library/Java/JavaVirtualMachines/temurin-8.jdk 1.8.0.302 Android Designer EPL code available here: https://github.com/xamarin/AndroidDesigner.EPL Android SDK Manager Version: 17.6.0.50 Hash: a715dca Branch: HEAD Build date: 2023-08-02 19:04:28 UTC Android Device Manager Version: 0.0.0.1309 Hash: 06e3e77 Branch: HEAD Build date: 2023-08-02 19:04:28 UTC Xamarin.Mac Not Installed Xamarin.iOS Version: 16.4.0.6 Visual Studio Community Hash: 97731c92c Branch: xcode14.3 Build date: 2023-04-11 22:38:36-0400 Xamarin Designer Version: 17.6.3.9 Hash: 2648399ae8 Branch: remotes/origin/d17-6 Build date: 2023-08-02 19:04:23 UTC Build Information Release ID: 1706030421 Git revision: c90350679f1b9295edc584519320b13d06489853 Build date: 2023-08-02 19:02:50+00 Build branch: release-17.6 Build lane: release-17.6 Operating System Mac OS X 13.5.0 Darwin 22.6.0 Darwin Kernel Version 22.6.0 Wed Jul 5 22:21:56 PDT 2023 root:xnu-8796.141.3~6/RELEASE_X86_64 x86_64 ```

Build Logs

Screenshots

Expected Behavior image

Reproduction Link

Workaround

I did not found one.

WebViewIssue.zip

DordeBunic commented 10 months ago

If you have same problem just await with Task.Delay(timespan) for ios and it should work

RagibNoor commented 9 months ago

hi @DordeBunic where should i add Task.Delay(timespan) and why?