Skip to content

[Unity 2019] Uncaught TypeError: Cannot read properties of undefined (reading 'SendMessage') #754

Open
@jawaharbabus

Description

@jawaharbabus

When I try to post a message using postMessage api from Flutter to Unity in a web app, I am facing this error.
Uncaught TypeError: Cannot read properties of undefined (reading 'SendMessage')

Steps to reproduce the behavior:

  1. Exported the Unity web files using [fuw-2022.1.7f1.unitypackage]
  2. Tried sending a message to unity using postMessage API
  3. run in debug mode in chrome

unityWidgetController.postMessage('gameObj', 'changeOrientation', sensorData);

Output:

Invoking error handler due to
Uncaught TypeError: Cannot read properties of undefined (reading 'SendMessage')
TypeError: Cannot read properties of undefined (reading 'SendMessage')
UnityLibrary/index.html 36:31
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/html/dart2js/html_dart2js.dart 15896:13 dispatchEvent]
packages/flutter_unity_widget/src/web/web_unity_widget_controller.dart 209:19 messageUnity
packages/flutter_unity_widget/src/web/web_unity_widget_controller.dart 231:5 postMessage
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54 runBody
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5 _async
packages/flutter_unity_widget/src/web/web_unity_widget_controller.dart 226:28 postMessage
packages/testwebapp/unity_widget_wrapper.dart 56:28 onUnityChanged
packages/testwebapp/unity_widget_wrapper.dart 62:5 passData
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54 runBody
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5 _async
packages/testwebapp/unity_widget_wrapper.dart 60:16 passData
packages/flutter/src/material/ink_well.dart 1072:21 handleTap
packages/flutter/src/gestures/recognizer.dart 253:24 invokeCallback
packages/flutter/src/gestures/tap.dart 627:11 handleTapUp
packages/flutter/src/gestures/tap.dart 306:5 [_checkUp]
packages/flutter/src/gestures/tap.dart 239:7 handlePrimaryPointer
packages/flutter/src/gestures/recognizer.dart 615:9 handleEvent
packages/flutter/src/gestures/pointer_router.dart 98:12 [_dispatch]
packages/flutter/src/gestures/pointer_router.dart 143:9
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/linked_hash_map.dart 21:13 forEach
packages/flutter/src/gestures/pointer_router.dart 141:17 [_dispatchEventToRoutes]
packages/flutter/src/gestures/pointer_router.dart 127:7 route
packages/flutter/src/gestures/binding.dart 460:19 handleEvent
packages/flutter/src/gestures/binding.dart 440:14 dispatchEvent
packages/flutter/src/rendering/binding.dart 337:11 dispatchEvent
packages/flutter/src/gestures/binding.dart 395:7
[_handlePointerEventImmediately]
packages/flutter/src/gestures/binding.dart 357:5 handlePointerEvent
packages/flutter/src/gestures/binding.dart 314:7 [_flushPointerEventQueue]
packages/flutter/src/gestures/binding.dart 295:7
[_handlePointerDataPacket]
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 1183:13 invoke1
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 244:5 invokeOnPointerDataPacket
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 147:39 [_onPointerData]
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 653:20
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 594:14
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 288:16 loggedHandler
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/pointer_binding.dart 179:80
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 334:14 _checkAndCall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 339:39 dcall

It error message points the following lines of code in Index.html under UnityLibrary folder in web directory.

    window.parent.addEventListener('unityFlutterBiding', function (args) {
        const obj = JSON.parse(args.data);
        mainUnityInstance.SendMessage(obj.gameObject, obj.methodName, obj.message);
    });

Unity (please complete the following information):

  • Platform: Web(Chrome)
  • Version: flutter_unity_widget 2022.2.0
  • Unity Editor: 2019.4.39f1
  • Mode : Debug

PS

I built the same app in Android app and It works fine. This excludes the possibility of an issue from the app logic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    WebGLThis issue is specific to the Web platform

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions