Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 23 additions & 23 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -83,30 +83,22 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
js:
dependency: transitive
description:
name: js
sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
url: "https://pub.dev"
source: hosted
version: "0.7.1"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev"
source: hosted
version: "10.0.4"
version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev"
source: hosted
version: "3.0.3"
version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
Expand All @@ -127,18 +119,18 @@ packages:
dependency: transitive
description:
name: material_color_utilities
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.8.0"
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev"
source: hosted
version: "1.12.0"
version: "1.15.0"
path:
dependency: transitive
description:
Expand All @@ -151,10 +143,10 @@ packages:
dependency: transitive
description:
name: rxdart
sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
url: "https://pub.dev"
source: hosted
version: "0.28.0"
version: "0.27.7"
sky_engine:
dependency: transitive
description: flutter
Expand Down Expand Up @@ -204,10 +196,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.dev"
source: hosted
version: "0.7.0"
version: "0.7.2"
vector_math:
dependency: transitive
description:
Expand All @@ -222,15 +214,23 @@ packages:
path: ".."
relative: true
source: path
version: "2.5.0"
version: "2.6.0"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
url: "https://pub.dev"
source: hosted
version: "14.2.5"
web:
dependency: transitive
description:
name: web
sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062
url: "https://pub.dev"
source: hosted
version: "14.2.1"
version: "1.0.0"
sdks:
dart: ">=3.4.1 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"
3 changes: 1 addition & 2 deletions example/test/widget_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.

import 'package:example/main.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

import 'package:example/main.dart';

void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
Expand Down
27 changes: 12 additions & 15 deletions lib/src/bridge/vk_bridge_web.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,14 @@ library vk_bridge;

import 'dart:async';
import 'dart:convert';
import 'dart:html';
import 'dart:js_interop';

import 'package:built_collection/built_collection.dart';
import 'package:js/js.dart';
import 'package:rxdart/rxdart.dart';
import 'package:vk_bridge/src/bridge/vk_bridge.dart' as vk_bridge;
import 'package:vk_bridge/src/data/model/events/vk_web_app_location_changed/vk_web_app_location_changed.dart';
import 'package:vk_bridge/src/data/model/events/vk_web_app_view_hide/vk_web_app_view_hide.dart';
import 'package:vk_bridge/src/data/model/options/allow_messages_from_group_options/allow_messages_from_group_options.dart';
import 'package:vk_bridge/src/data/model/options/check_native_ads/ad_format.dart';
import 'package:vk_bridge/src/data/model/options/check_native_ads/check_native_ads_options.dart';
import 'package:vk_bridge/src/data/model/options/close_options/close_options.dart';
import 'package:vk_bridge/src/data/model/options/copy_text_options/copy_text_options.dart';
Expand Down Expand Up @@ -51,7 +49,6 @@ import 'package:vk_bridge/src/data/model/results/vk_web_app_add_to_home_screen_i
import 'package:vk_bridge/src/data/model/results/vk_web_app_community_access_token_result/vk_web_app_community_access_token_result.dart';
import 'package:vk_bridge/src/data/model/results/vk_web_app_contacts_done/vk_web_app_contacts_done.dart';
import 'package:vk_bridge/src/data/model/results/vk_web_app_flash_get_info_result/vk_web_app_flash_get_info_result.dart';
import 'package:vk_bridge/src/data/model/results/vk_web_app_get_ads_result/vk_web_app_get_ads_result.dart';
import 'package:vk_bridge/src/data/model/results/vk_web_app_get_friends_result/vk_web_app_get_friends_result.dart';
import 'package:vk_bridge/src/data/model/results/vk_web_app_get_group_info_result/vk_web_app_get_group_info_result.dart';
import 'package:vk_bridge/src/data/model/results/vk_web_app_get_personal_card_result/vk_web_app_get_personal_card_result.dart';
Expand All @@ -69,15 +66,16 @@ import 'package:vk_bridge/src/data/model/results/vk_web_app_subscribe_story_app_
import 'package:vk_bridge/src/data/model/serializers.dart';
import 'package:vk_bridge/src/utils.dart';
import 'package:vk_bridge/vk_bridge.dart';
import 'package:web/web.dart' hide ScrollOptions;

/// Method for sending something to the VK Mini Aps platform
@JS('vkBridge.send')
external Object _send(String method, [Object props]);
external JSAny _send(JSString method, [JSObject props]);

/// Allows assigning a function to be callable from
/// `window.vkBridgeDartListener()`
@JS('vkBridgeDartListener')
external set _vkBridgeDartListener(void Function(Object event) f);
external set _vkBridgeDartListener(JSFunction f);

/// Web implementation of the VK Mini Aps platform contact
class VKBridge implements vk_bridge.VKBridge {
Expand Down Expand Up @@ -145,11 +143,10 @@ class VKBridge implements vk_bridge.VKBridge {
}

_logger.d('send($method, $propsJson)');

final jsObjectResult =
await promiseToFuture<Object>(_send(method, parse(propsJson)));
final jsonResult = stringify(jsObjectResult);
final Object decodedJson = jsonDecode(jsonResult) as Object;
await (_send(method.toJS, parse(propsJson.toJS)) as JSPromise).toDart;
final jsonResult = stringify(jsObjectResult! as JSObject);
final Object decodedJson = jsonDecode(jsonResult.toDart);
try {
final result = deserialize<Result>(decodedJson);
if (result == null) {
Expand All @@ -169,8 +166,8 @@ class VKBridge implements vk_bridge.VKBridge {
rethrow;
}

final jsonError = stringify(jsObjectError);
final Object decodedJson = jsonDecode(jsonError) as Object;
final jsonError = stringify(jsObjectError as JSObject);
final Object decodedJson = jsonDecode(jsonError.toDart) as Object;

VKWebAppError error;
try {
Expand All @@ -186,12 +183,12 @@ class VKBridge implements vk_bridge.VKBridge {
}
}

void _eventHandler(Object jsEvent) {
void _eventHandler(JSObject jsEvent) {
final jsonEvent = stringify(jsEvent);

_logger.d('_eventHandler: $jsonEvent');

final decodedJsonEvent = jsonDecode(jsonEvent) as Map<String, dynamic>;
final decodedJsonEvent = jsonDecode(jsonEvent.toDart) as Map<String, dynamic>;

final type = decodedJsonEvent['type']! as String;
final dynamic data = decodedJsonEvent['data'];
Expand All @@ -217,7 +214,7 @@ class VKBridge implements vk_bridge.VKBridge {

@override
Future<VKWebAppBoolResult> init() async {
_vkBridgeDartListener = allowInterop(_eventHandler);
_vkBridgeDartListener = _eventHandler.toJS;

final vkWebAppInitResult = await _sendInternal<VKWebAppBoolResult>(
'VKWebAppInit',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ abstract class VKWebAppOpenAppResult
static Serializer<VKWebAppOpenAppResult> get serializer =>
_$vKWebAppOpenAppResultSerializer;

/// TODO(sanekyy): enum
// TODO(sanekyy): enum
/// The application close status passed to the parent application.
/// Possible values: Possible values: failed, success
String get status;
Expand Down
6 changes: 3 additions & 3 deletions lib/src/utils.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
@JS()
library stringify;

import 'package:js/js.dart';
import 'dart:js_interop';

/// Calls invoke JavaScript `JSON.stringify(obj)`
@JS('JSON.stringify')
external String stringify(Object obj);
external JSString stringify(JSObject obj);

/// Calls invoke JavaScript `JSON.stringify(obj)`
@JS('JSON.parse')
external Object parse(String json);
external JSObject parse(JSString json);
22 changes: 11 additions & 11 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: "5aaf60d96c4cd00fe7f21594b5ad6a1b699c80a27420f8a837f4d68473ef09e3"
sha256: "45cfa8471b89fb6643fe9bf51bd7931a76b8f5ec2d65de4fb176dba8d4f22c77"
url: "https://pub.dev"
source: hosted
version: "68.0.0"
version: "73.0.0"
_macros:
dependency: transitive
description: dart
source: sdk
version: "0.1.0"
version: "0.3.2"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: "21f1d3720fd1c70316399d5e2bccaebb415c434592d778cce8acb967b8578808"
sha256: "4959fec185fe70cce007c57e9ab6983101dbe593d2bf8bbfb4453aaec0cf470a"
url: "https://pub.dev"
source: hosted
version: "6.5.0"
version: "6.8.0"
args:
dependency: transitive
description:
Expand Down Expand Up @@ -239,7 +239,7 @@ packages:
source: hosted
version: "1.0.4"
js:
dependency: "direct main"
dependency: transitive
description:
name: js
sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
Expand All @@ -266,10 +266,10 @@ packages:
dependency: transitive
description:
name: macros
sha256: "12e8a9842b5a7390de7a781ec63d793527582398d16ea26c60fed58833c9ae79"
sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
url: "https://pub.dev"
source: hosted
version: "0.1.0-main.0"
version: "0.1.2-main.4"
matcher:
dependency: transitive
description:
Expand Down Expand Up @@ -346,10 +346,10 @@ packages:
dependency: "direct main"
description:
name: rxdart
sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
url: "https://pub.dev"
source: hosted
version: "0.28.0"
version: "0.27.7"
shelf:
dependency: transitive
description:
Expand Down Expand Up @@ -511,7 +511,7 @@ packages:
source: hosted
version: "1.1.0"
web:
dependency: transitive
dependency: "direct main"
description:
name: web
sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062
Expand Down
6 changes: 3 additions & 3 deletions pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: vk_bridge
description: A dart package for working with VK Mini Apps via VK Bridge. Works web, mobile-web
homepage: https://github.com/optimist-dev/vk_bridge
version: 2.5.0
version: 2.6.0

environment:
sdk: '>=3.4.1 <4.0.0'

dependencies:
js: ^0.7.1
built_value: ^8.9.2
built_collection: ^5.1.1
rxdart: ^0.28.0
rxdart: ^0.27.7
# Note: meta is pinned to version 1.12.0 by flutter_test from the flutter SDK.
meta: ^1.12.0
web: ^1.0.0

dev_dependencies:
test: ^1.25.8
Expand Down