mirror of
https://github.com/status-im/react-native-webview.git
synced 2025-02-23 01:08:36 +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
|
||||
? WKAudiovisualMediaTypeAll
|
||||
: WKAudiovisualMediaTypeNone;
|
||||
wkWebViewConfig.dataDetectorTypes = _dataDetectorTypes;
|
||||
wkWebViewConfig.dataDetectorTypes = _dataDetectorTypes;
|
||||
#else
|
||||
wkWebViewConfig.mediaPlaybackRequiresUserAction = _mediaPlaybackRequiresUserAction;
|
||||
#endif
|
||||
|
||||
_webView = [[WKWebView alloc] initWithFrame:self.bounds configuration: wkWebViewConfig];
|
||||
@ -216,7 +218,7 @@ static NSString *const MessageHanderName = @"ReactNative";
|
||||
|
||||
-(void)setHideKeyboardAccessoryView:(BOOL)hideKeyboardAccessoryView
|
||||
{
|
||||
|
||||
|
||||
if (_webView == nil) {
|
||||
_savedHideKeyboardAccessoryView = hideKeyboardAccessoryView;
|
||||
return;
|
||||
@ -225,29 +227,29 @@ static NSString *const MessageHanderName = @"ReactNative";
|
||||
if (_savedHideKeyboardAccessoryView == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
UIView* subview;
|
||||
for (UIView* view in _webView.scrollView.subviews) {
|
||||
if([[view.class description] hasPrefix:@"WK"])
|
||||
subview = view;
|
||||
}
|
||||
|
||||
|
||||
if(subview == nil) return;
|
||||
|
||||
|
||||
NSString* name = [NSString stringWithFormat:@"%@_SwizzleHelperWK", subview.class.superclass];
|
||||
Class newClass = NSClassFromString(name);
|
||||
|
||||
|
||||
if(newClass == nil)
|
||||
{
|
||||
newClass = objc_allocateClassPair(subview.class, [name cStringUsingEncoding:NSASCIIStringEncoding], 0);
|
||||
if(!newClass) return;
|
||||
|
||||
|
||||
Method method = class_getInstanceMethod([_SwizzleHelperWK class], @selector(inputAccessoryView));
|
||||
class_addMethod(newClass, @selector(inputAccessoryView), method_getImplementation(method), method_getTypeEncoding(method));
|
||||
|
||||
|
||||
objc_registerClassPair(newClass);
|
||||
}
|
||||
|
||||
|
||||
object_setClass(subview, newClass);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user