You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
Dart
52 lines
1.3 KiB
Dart
import 'dart:developer';
|
|
|
|
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
|
|
class MyInAppBrowser extends InAppBrowser {
|
|
final Function onExitCallback;
|
|
final Function(String) onLoadStartCallback;
|
|
|
|
MyInAppBrowser({
|
|
required this.onExitCallback,
|
|
required this.onLoadStartCallback,
|
|
});
|
|
|
|
@override
|
|
Future onBrowserCreated() async {
|
|
log("\n\nBrowser Created!\n\n");
|
|
}
|
|
|
|
@override
|
|
Future onLoadStart(Uri? url) async {
|
|
onLoadStartCallback(url.toString());
|
|
}
|
|
|
|
@override
|
|
Future onLoadStop(Uri? url) async {
|
|
log("\n\nStopped $url\n\n");
|
|
}
|
|
|
|
@override
|
|
void onLoadError(Uri? url, int code, String message) {
|
|
log("Can't load $url.. Error: $message");
|
|
}
|
|
|
|
@override
|
|
Future<PermissionResponse?> onPermissionRequest(PermissionRequest permissionRequest) async {
|
|
log("onPermissionRequest: ${permissionRequest.resources}");
|
|
try {
|
|
var status = await Permission.camera.status;
|
|
if (!status.isGranted) {
|
|
await Permission.camera.request();
|
|
}
|
|
} catch (e) {
|
|
log("Error checking/requesting camera permission: $e");
|
|
}
|
|
return PermissionResponse(
|
|
resources: permissionRequest.resources,
|
|
action: PermissionResponseAction.GRANT,
|
|
);
|
|
}
|
|
}
|