mirror of
https://github.com/status-im/react-native-webview.git
synced 2025-02-23 09:18:38 +00:00
fix(WKWebview): Fixed for supporting mediaPlaybackRequiresUserAction option under iOS 10. (#129)
This commit is contained in:
parent
57e6134e67
commit
c0c0116c80
@ -92,7 +92,9 @@ static NSString *const MessageHanderName = @"ReactNative";
|
|||||||
wkWebViewConfig.mediaTypesRequiringUserActionForPlayback = _mediaPlaybackRequiresUserAction
|
wkWebViewConfig.mediaTypesRequiringUserActionForPlayback = _mediaPlaybackRequiresUserAction
|
||||||
? WKAudiovisualMediaTypeAll
|
? WKAudiovisualMediaTypeAll
|
||||||
: WKAudiovisualMediaTypeNone;
|
: WKAudiovisualMediaTypeNone;
|
||||||
wkWebViewConfig.dataDetectorTypes = _dataDetectorTypes;
|
wkWebViewConfig.dataDetectorTypes = _dataDetectorTypes;
|
||||||
|
#else
|
||||||
|
wkWebViewConfig.mediaPlaybackRequiresUserAction = _mediaPlaybackRequiresUserAction;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_webView = [[WKWebView alloc] initWithFrame:self.bounds configuration: wkWebViewConfig];
|
_webView = [[WKWebView alloc] initWithFrame:self.bounds configuration: wkWebViewConfig];
|
||||||
@ -216,7 +218,7 @@ static NSString *const MessageHanderName = @"ReactNative";
|
|||||||
|
|
||||||
-(void)setHideKeyboardAccessoryView:(BOOL)hideKeyboardAccessoryView
|
-(void)setHideKeyboardAccessoryView:(BOOL)hideKeyboardAccessoryView
|
||||||
{
|
{
|
||||||
|
|
||||||
if (_webView == nil) {
|
if (_webView == nil) {
|
||||||
_savedHideKeyboardAccessoryView = hideKeyboardAccessoryView;
|
_savedHideKeyboardAccessoryView = hideKeyboardAccessoryView;
|
||||||
return;
|
return;
|
||||||
@ -225,29 +227,29 @@ static NSString *const MessageHanderName = @"ReactNative";
|
|||||||
if (_savedHideKeyboardAccessoryView == false) {
|
if (_savedHideKeyboardAccessoryView == false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
UIView* subview;
|
UIView* subview;
|
||||||
for (UIView* view in _webView.scrollView.subviews) {
|
for (UIView* view in _webView.scrollView.subviews) {
|
||||||
if([[view.class description] hasPrefix:@"WK"])
|
if([[view.class description] hasPrefix:@"WK"])
|
||||||
subview = view;
|
subview = view;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(subview == nil) return;
|
if(subview == nil) return;
|
||||||
|
|
||||||
NSString* name = [NSString stringWithFormat:@"%@_SwizzleHelperWK", subview.class.superclass];
|
NSString* name = [NSString stringWithFormat:@"%@_SwizzleHelperWK", subview.class.superclass];
|
||||||
Class newClass = NSClassFromString(name);
|
Class newClass = NSClassFromString(name);
|
||||||
|
|
||||||
if(newClass == nil)
|
if(newClass == nil)
|
||||||
{
|
{
|
||||||
newClass = objc_allocateClassPair(subview.class, [name cStringUsingEncoding:NSASCIIStringEncoding], 0);
|
newClass = objc_allocateClassPair(subview.class, [name cStringUsingEncoding:NSASCIIStringEncoding], 0);
|
||||||
if(!newClass) return;
|
if(!newClass) return;
|
||||||
|
|
||||||
Method method = class_getInstanceMethod([_SwizzleHelperWK class], @selector(inputAccessoryView));
|
Method method = class_getInstanceMethod([_SwizzleHelperWK class], @selector(inputAccessoryView));
|
||||||
class_addMethod(newClass, @selector(inputAccessoryView), method_getImplementation(method), method_getTypeEncoding(method));
|
class_addMethod(newClass, @selector(inputAccessoryView), method_getImplementation(method), method_getTypeEncoding(method));
|
||||||
|
|
||||||
objc_registerClassPair(newClass);
|
objc_registerClassPair(newClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
object_setClass(subview, newClass);
|
object_setClass(subview, newClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user