import 'dart:async'; import 'package:flutter/services.dart'; import '../services/ALNetClient.dart'; import 'dart:convert'; import 'dart:typed_data'; typedef Future MethodHandler(MethodCall call); class HybridStackManagerPlugin { static HybridStackManagerPlugin hybridStackManagerPlugin = new HybridStackManagerPlugin._internal(); MethodChannel _channel; MethodHandler _handler; void setMethodCallHandler(MethodHandler hdler) { _handler = hdler; _channel.setMethodCallHandler(_handler); } HybridStackManagerPlugin._internal() { _channel = new MethodChannel('hybrid_stack_manager'); } openUrlFromNative({String url, Map query, Map params, bool animated}) { _channel.invokeMethod("openUrlFromNative", { "url": url ?? "", "query": (query ?? {}), "params": (params ?? {}), "animated": animated ?? true }); } popCurPage({bool animated = true}) { _channel.invokeMethod("popCurPage", animated); } updateCurFlutterRoute(String curRouteName) { _channel.invokeMethod("updateCurFlutterRoute", curRouteName ?? ""); } Future getMainEntryParams() async { dynamic info = await _channel.invokeMethod('getMainEntryParams'); return new Future.sync(() => info as Map); } // method 0: GET 1:POST // Native 网络请求 Future callNativeNetWorking({String url, HttpMethod method,Map parameters}) async { dynamic info = await _channel.invokeMethod('callNativeNetWorking', { "url": url ?? "", "method": 1 ?? 0, "parameters": (parameters ?? {}), }); return new Future.sync(() => info as Map); } // Native 网络加载视图 callNativeLoading({bool show = true, String message=''}) { _channel.invokeMethod("callNativeLoading", { 'show':show, 'message':message }); } }