Anonymous
Сбой iOS на UICommand Выполнение сесендера: цель: при использовании контекстного меню в inappwebview (Flutter)
Сообщение
Anonymous » 27 июл 2025, 08:26
Я сталкиваюсь с сбоем на iOS, когда нажимаю на нативный контекстный элемент меню внутри Flutter_inappwebView. Журнал сбоя указывает на UICommand Выполнение сестника: Target: в Uikitcore.
журнал сбоя (выдержка):
Код: Выделить всё
Crashed: com.apple.main-thread
0 ??? 0x103bf400c (Missing)
1 UIKitCore 0x136b698 -[UICommand performWithSender:target:] + 172
2 UIKitCore 0x1550e64 -[UIEditMenuInteraction _editMenuPresentation:didSelectMenuLeaf:completion:] + 316
3 UIKitCore 0x146c1d8 -[_UIEditMenuContentPresentation editMenuListView:didSelectMenuElement:] + 244
4 UIKitCore 0xc76bf4 -[_UIEditMenuListView _selectItemAtIndexPath:] + 280
...
30 MyAppName 0x19430 main + 120 (AppDelegate.swift:120)
соответствующий фрагмент кода:
Код: Выделить всё
var style = "";
Widget build(BuildContext context) {
return BlocConsumer(
bloc: myCubit,
listener: (context, state) {
},
builder: (context, state) {
return Scaffold(
backgroundColor: context.theme.appColors.white,
body: Listener(
onPointerDown: gestureHandler.onPointerDown,
onPointerMove: gestureHandler.onPointerMove,
onPointerUp: gestureHandler.onPointerUp,
behavior: HitTestBehavior.translucent,
child: InAppWebView(
gestureRecognizers: {
Factory(
() => LongPressGestureRecognizer()),
},
contextMenu: _createContextMenu(),
initialUrlRequest: URLRequest(
url: WebUri("//$readerPath"),
),
initialSettings: InAppWebViewSettings(
javaScriptEnabled: true,
disableContextMenu: false,
// ... other settings
),
onWebViewCreated: (controller) {
myCubit.webViewController = controller;
controller.setContextMenu(_createContextMenu());
},
),
),
);
},
);
}
ContextMenu _createContextMenu() {
return ContextMenu(
menuItems: [
ContextMenuItem(id: 1, title: CONTEXT_MENU_1),
// Other items...
],
settings: ContextMenuSettings(hideDefaultSystemContextMenuItems: true),
onCreateContextMenu: (hitTestResult) async {
isContextMenuOpen.value = true;
// Show custom menu...
},
onContextMenuActionItemClicked: (menuItem) async {
_menuItemClicked(menuItem.id);
},
);
}
void _menuItemClicked(int itemId) {
try {
switch (itemId) {
case 1:
style = InterfaceConst.OPTION_1;
}
}
}
< /code>
Вопросы: < /p>
[*] Это авария связана с IOS 18 изменений в Uieditmenuinteraction? /> Flutter_inappwebView при использовании элементов Manual + Custom Menu? < /li>
< /ul>
[b]Environment:
[/b]
Flutter 3.29.0
[*] Dart 3.7.0
[*] Flutter_inappwebview: ^6.1.5
[*] ios: 18.1
[*]
IOS: 18.1
: /> < /ul>
Подробнее здесь:
https://stackoverflow.com/questions/797 ... nu-in-inap
1753594006
Anonymous
Я сталкиваюсь с сбоем на iOS, когда нажимаю на нативный контекстный элемент меню внутри Flutter_inappwebView. Журнал сбоя указывает на UICommand Выполнение сестника: Target: в Uikitcore. [b] журнал сбоя (выдержка): [/b] [code]Crashed: com.apple.main-thread 0 ??? 0x103bf400c (Missing) 1 UIKitCore 0x136b698 -[UICommand performWithSender:target:] + 172 2 UIKitCore 0x1550e64 -[UIEditMenuInteraction _editMenuPresentation:didSelectMenuLeaf:completion:] + 316 3 UIKitCore 0x146c1d8 -[_UIEditMenuContentPresentation editMenuListView:didSelectMenuElement:] + 244 4 UIKitCore 0xc76bf4 -[_UIEditMenuListView _selectItemAtIndexPath:] + 280 ... 30 MyAppName 0x19430 main + 120 (AppDelegate.swift:120) [/code] [b] соответствующий фрагмент кода: [/b] [code]var style = ""; Widget build(BuildContext context) { return BlocConsumer( bloc: myCubit, listener: (context, state) { }, builder: (context, state) { return Scaffold( backgroundColor: context.theme.appColors.white, body: Listener( onPointerDown: gestureHandler.onPointerDown, onPointerMove: gestureHandler.onPointerMove, onPointerUp: gestureHandler.onPointerUp, behavior: HitTestBehavior.translucent, child: InAppWebView( gestureRecognizers: { Factory( () => LongPressGestureRecognizer()), }, contextMenu: _createContextMenu(), initialUrlRequest: URLRequest( url: WebUri("//$readerPath"), ), initialSettings: InAppWebViewSettings( javaScriptEnabled: true, disableContextMenu: false, // ... other settings ), onWebViewCreated: (controller) { myCubit.webViewController = controller; controller.setContextMenu(_createContextMenu()); }, ), ), ); }, ); } ContextMenu _createContextMenu() { return ContextMenu( menuItems: [ ContextMenuItem(id: 1, title: CONTEXT_MENU_1), // Other items... ], settings: ContextMenuSettings(hideDefaultSystemContextMenuItems: true), onCreateContextMenu: (hitTestResult) async { isContextMenuOpen.value = true; // Show custom menu... }, onContextMenuActionItemClicked: (menuItem) async { _menuItemClicked(menuItem.id); }, ); } void _menuItemClicked(int itemId) { try { switch (itemId) { case 1: style = InterfaceConst.OPTION_1; } } } < /code> Вопросы: < /p> [*] Это авария связана с IOS 18 изменений в Uieditmenuinteraction? /> Flutter_inappwebView при использовании элементов Manual + Custom Menu? < /li> < /ul> [b]Environment:[/code] [/b] Flutter 3.29.0 [*] Dart 3.7.0 [*] Flutter_inappwebview: ^6.1.5 [*] ios: 18.1 [*] IOS: 18.1 : /> < /ul> Подробнее здесь: [url]https://stackoverflow.com/questions/79716135/ios-crash-on-uicommand-performwithsendertarget-when-using-context-menu-in-inap[/url]