我的 IOS 应用有问题。我有一个 pwa,并使用 flutter_inappwebview 创建 iOS 应用。我使用 adyen 在我的应用中付款,但在我接受银行应用中的 3dsecure 后,它就卡住了。
我的 IOS 应用程序有问题。我有一个 pwa 并用它 flutter_inappwebview
来创建一个 iOS 应用程序。我在我的应用程序中使用 adyen 付款,但在我的银行应用程序中接受 3dsecure 后它就卡住了。这个问题只存在于 IOS 应用程序上,如果我在 safari、chrome 或 android 中打开我的 pwa,付款就可以正常工作。
我的 Webview 设置:
InAppWebViewSettings settings = InAppWebViewSettings(
transparentBackground: true,
supportZoom: false,
useOnDownloadStart: true,
useShouldOverrideUrlLoading: true,
mediaPlaybackRequiresUserGesture: false,
useShouldInterceptAjaxRequest: true,
javaScriptCanOpenWindowsAutomatically: true,
supportMultipleWindows: true,
useHybridComposition: true,
allowsLinkPreview: false,
useOnNavigationResponse: false,
suppressesIncrementalRendering: false,
enableViewportScale: true,
disallowOverScroll: true,
allowsBackForwardNavigationGestures: false,
allowsInlineMediaPlayback: true,
);
pubspec.lock:
dependencies:
flutter:
sdk: flutter
add_2_calendar: ^2.2.3
flutter_inappwebview: ^6.0.0
permission_handler: ^10.2.0
path_provider: ^2.0.11
device_info_plus: ^3.0.0
open_file_safe: ^3.2.3
url_launcher: ^6.1.7
gif_view: ^0.3.1
nfc_manager: ^3.2.0
firebase_core: ^2.4.1
notification_permissions: ^0.6.1
firebase_messaging: ^14.2.1
app_tracking_transparency: ^2.0.3
当我点击“付款”时,系统会重定向到 3dsecure 页面,我应该在该页面上接受我的应用中的付款。重定向成功,我可以接受付款,但之后什么也没发生。
当我在 Safari 中执行相同操作时,页面每隔几秒就会刷新一次,我的应用程序缺少此功能,我想这就是问题所在?我还收到此错误,不知道这是否与此有关?
这是我的 shouldInterceptAjaxRequest
(controller, request) async {
List urlListPOST = ["/api/login"];
print("AJAX Request Intercepted:");
print("URL: ${request.url}");
print("Method: ${request.method}");
print("Headers: ${request.headers}");
if (request.method == 'POST' && urlListPOST.contains(request.url.toString())) {
// Set app identifier for vue
await _setBasicDeviceInfo(controller);
await _checkInternetConnection();
if (_isConnected) {
print("connected");
return request;
} else {
print("NOT connected");
urlPreNoInternet = urlController.text;
print("NO INTERNET");
print(urlPreNoInternet);
controller.loadFile(
assetFilePath: "assets/html/nointernet.html");
setState(() {
_showSplash = false;
});
}
} else {
List urlListGET = [
"/api/gf/courses/calendar",
"/api/studios/fetch",
"/api/videoarchiv",
"/api/user",
"/api/plan"
];
if (request.method == "GET" && urlListGET.contains(request.url.toString())) {
await _checkInternetConnection();
if (_isConnected) {
return request;
} else {
urlPreNoInternet = urlController.text;
controller.loadFile(
assetFilePath: "assets/html/nointernet.html");
setState(() {
_showSplash = false;
});
}
} else {
return request;
}
}
},
记录的内容:
如果你们需要更多信息,请随时询问,我在这个问题上已经困扰了很长时间了。