updated web support
This commit is contained in:
parent
68f25d0d4d
commit
2dd1999a63
|
@ -169,6 +169,7 @@ class _InAppWebViewExampleScreenState extends State<InAppWebViewExampleScreen> {
|
|||
this.url = url.toString();
|
||||
urlController.text = this.url;
|
||||
});
|
||||
|
||||
},
|
||||
onLoadError: (controller, url, code, message) {
|
||||
pullToRefreshController?.endRefreshing();
|
||||
|
|
|
@ -497,6 +497,51 @@ window.flutter_inappwebview = {
|
|||
}
|
||||
return null;
|
||||
},
|
||||
getScrollX: function() {
|
||||
var iframe = webView.iframe;
|
||||
try {
|
||||
return Math.round(iframe.contentWindow.scrollX);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
getScrollY: function() {
|
||||
var iframe = webView.iframe;
|
||||
try {
|
||||
return Math.round(iframe.contentWindow.scrollY);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
isSecureContext: function() {
|
||||
var iframe = webView.iframe;
|
||||
try {
|
||||
return iframe.contentWindow.isSecureContext;
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
canScrollVertically: function() {
|
||||
var iframe = webView.iframe;
|
||||
try {
|
||||
return iframe.contentDocument.body.scrollHeight > iframe.contentWindow.innerHeight;
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
canScrollHorizontally: function() {
|
||||
var iframe = webView.iframe;
|
||||
try {
|
||||
return iframe.contentDocument.body.scrollWidth > iframe.contentWindow.innerWidth;
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
};
|
||||
|
||||
return webView;
|
||||
|
|
|
@ -2488,9 +2488,12 @@ class InAppWebViewController
|
|||
|
||||
///Returns the scrolled left position of the current WebView.
|
||||
///
|
||||
///**NOTE for Web**: this method will have effect only if the iframe has the same origin.
|
||||
///
|
||||
///**Supported Platforms/Implementations**:
|
||||
///- Android native WebView ([Official API - View.getScrollX](https://developer.android.com/reference/android/view/View#getScrollX()))
|
||||
///- iOS ([Official API - UIScrollView.contentOffset](https://developer.apple.com/documentation/uikit/uiscrollview/1619404-contentoffset))
|
||||
///- Web ([Official API - Window.scrollX](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollX))
|
||||
Future<int?> getScrollX() async {
|
||||
Map<String, dynamic> args = <String, dynamic>{};
|
||||
return await _channel.invokeMethod('getScrollX', args);
|
||||
|
@ -2498,9 +2501,12 @@ class InAppWebViewController
|
|||
|
||||
///Returns the scrolled top position of the current WebView.
|
||||
///
|
||||
///**NOTE for Web**: this method will have effect only if the iframe has the same origin.
|
||||
///
|
||||
///**Supported Platforms/Implementations**:
|
||||
///- Android native WebView ([Official API - View.getScrollY](https://developer.android.com/reference/android/view/View#getScrollY()))
|
||||
///- iOS ([Official API - UIScrollView.contentOffset](https://developer.apple.com/documentation/uikit/uiscrollview/1619404-contentoffset))
|
||||
///- Web ([Official API - Window.scrollY](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY))
|
||||
Future<int?> getScrollY() async {
|
||||
Map<String, dynamic> args = <String, dynamic>{};
|
||||
return await _channel.invokeMethod('getScrollY', args);
|
||||
|
@ -2731,9 +2737,12 @@ class InAppWebViewController
|
|||
///
|
||||
///**NOTE for Android**: available Android 21.0+.
|
||||
///
|
||||
///**NOTE for Web**: this method will have effect only if the iframe has the same origin. Returns `false` otherwise.
|
||||
///
|
||||
///**Supported Platforms/Implementations**:
|
||||
///- Android native WebView
|
||||
///- iOS
|
||||
///- Web ([Official API - Window.isSecureContext](https://developer.mozilla.org/en-US/docs/Web/API/Window/isSecureContext))
|
||||
Future<bool> isSecureContext() async {
|
||||
Map<String, dynamic> args = <String, dynamic>{};
|
||||
return await _channel.invokeMethod('isSecureContext', args);
|
||||
|
@ -2959,9 +2968,12 @@ class InAppWebViewController
|
|||
|
||||
///Returns `true` if the webpage can scroll vertically, otherwise `false`.
|
||||
///
|
||||
///**NOTE for Web**: this method will have effect only if the iframe has the same origin.
|
||||
///
|
||||
///**Supported Platforms/Implementations**:
|
||||
///- Android native WebView
|
||||
///- iOS
|
||||
///- Web
|
||||
Future<bool> canScrollVertically() async {
|
||||
Map<String, dynamic> args = <String, dynamic>{};
|
||||
return await _channel.invokeMethod('canScrollVertically', args);
|
||||
|
@ -2969,9 +2981,12 @@ class InAppWebViewController
|
|||
|
||||
///Returns `true` if the webpage can scroll horizontally, otherwise `false`.
|
||||
///
|
||||
///**NOTE for Web**: this method will have effect only if the iframe has the same origin.
|
||||
///
|
||||
///**Supported Platforms/Implementations**:
|
||||
///- Android native WebView
|
||||
///- iOS
|
||||
///- Web
|
||||
Future<bool> canScrollHorizontally() async {
|
||||
Map<String, dynamic> args = <String, dynamic>{};
|
||||
return await _channel.invokeMethod('canScrollHorizontally', args);
|
||||
|
|
|
@ -136,6 +136,16 @@ class InAppWebViewWebElement {
|
|||
return await getOriginalUrl();
|
||||
case "getSelectedText":
|
||||
return await getSelectedText();
|
||||
case "getScrollX":
|
||||
return await getScrollX();
|
||||
case "getScrollY":
|
||||
return await getScrollY();
|
||||
case "isSecureContext":
|
||||
return await isSecureContext();
|
||||
case "canScrollVertically":
|
||||
return await canScrollVertically();
|
||||
case "canScrollHorizontally":
|
||||
return await canScrollHorizontally();
|
||||
case "dispose":
|
||||
dispose();
|
||||
break;
|
||||
|
@ -323,6 +333,26 @@ class InAppWebViewWebElement {
|
|||
return _callMethod('getSelectedText');
|
||||
}
|
||||
|
||||
Future<int?> getScrollX() async {
|
||||
return _callMethod('getScrollX');
|
||||
}
|
||||
|
||||
Future<int?> getScrollY() async {
|
||||
return _callMethod('getScrollY');
|
||||
}
|
||||
|
||||
Future<bool> isSecureContext() async {
|
||||
return _callMethod('isSecureContext');
|
||||
}
|
||||
|
||||
Future<bool> canScrollVertically() async {
|
||||
return _callMethod('canScrollVertically');
|
||||
}
|
||||
|
||||
Future<bool> canScrollHorizontally() async {
|
||||
return _callMethod('canScrollHorizontally');
|
||||
}
|
||||
|
||||
Set<Sandbox> getSandbox() {
|
||||
var sandbox = iframe.sandbox;
|
||||
Set<Sandbox> values = Set();
|
||||
|
|
|
@ -39,6 +39,6 @@ else
|
|||
FAILED=1
|
||||
fi
|
||||
|
||||
kill $(jobs -p)
|
||||
jobs -p | xargs kill
|
||||
|
||||
exit $FAILED
|
Loading…
Reference in New Issue