first commit

This commit is contained in:
kicap
2023-11-01 02:59:57 +08:00
commit 4cc9967ab8
185 changed files with 10489 additions and 0 deletions

View File

@ -0,0 +1,69 @@
import 'package:flutter/material.dart';
import 'package:stacked/stacked.dart';
import 'package:webview_flutter/webview_flutter.dart';
import './user_home_view_model.dart';
class UserHomeView extends StatelessWidget {
const UserHomeView({super.key});
@override
Widget build(BuildContext context) {
return ViewModelBuilder<UserHomeViewModel>.nonReactive(
viewModelBuilder: () => UserHomeViewModel(),
onViewModelReady: (UserHomeViewModel model) async {
await model.init();
},
disposeViewModel: false,
fireOnViewModelReadyOnce: true,
builder: (
BuildContext context,
UserHomeViewModel model,
Widget? child,
) {
return Scaffold(
body: WebView(
// initialUrl: 'http://192.168.43.125/rekam-medis',
initialUrl: 'http://20.20.20.25/perumahan',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
// _controller.complete(webViewController);
model.webViewControllerCompleter.future
.then((value) => model.webVIewcontroller = value);
model.webViewControllerCompleter.complete(webViewController);
},
onProgress: (int progress) {
double progressDouble = progress / 100;
model.myEasyLoading.showProgress(progressDouble, "Loading Denah");
},
// javascriptChannels: <JavascriptChannel>{
// _toasterJavascriptChannel(context),
// },
javascriptChannels: <JavascriptChannel>{
JavascriptChannel(
name: 'messageHandler',
onMessageReceived: (JavascriptMessage message) {
model.log.d(message.message);
// dev.i("message from the web view=\"${message.message}\"");
// if (message.message == "coba") {
// dev.i("sini untuk coba");
// controller.runJavascript("coba22('heheheh')");
// }
},
),
},
// navigationDelegate: (NavigationRequest request) async {},
onPageStarted: (String url) {},
onPageFinished: (String url) {
// dev.i('Page finished loading: $url');
model.myEasyLoading.dismissLoading();
},
gestureNavigationEnabled: true,
backgroundColor: const Color(0x00000000),
),
);
},
);
}
}

View File

@ -0,0 +1,25 @@
import 'dart:async';
import 'dart:io';
import 'package:webview_flutter/webview_flutter.dart';
import '../../../../app/app.locator.dart';
import '../../../../app/app.logger.dart';
import '../../../../app/core/custom_base_view_model.dart';
import '../../../../services/my_easyloading.dart';
class UserHomeViewModel extends CustomBaseViewModel {
final log = getLogger('UserHomeViewModel');
final _myEasyLoading = locator<MyEasyLoading>();
get myEasyLoading => _myEasyLoading;
late WebViewController webVIewcontroller;
final Completer<WebViewController> webViewControllerCompleter =
Completer<WebViewController>();
Future<void> init() async {
if (Platform.isAndroid) {
WebView.platform = SurfaceAndroidWebView();
}
}
}