| 
				
			 | 
			
			
				@@ -40,12 +40,7 @@ static NSString *const MessageHanderName = @"ReactNative"; 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				40
			 | 
			
			
				   BOOL _savedHideKeyboardAccessoryView; 
			 | 
		
	
		
			
			| 
				41
			 | 
			
				41
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				42
			 | 
			
				42
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				43
			 | 
			
				
			 | 
			
			
				-- (void)dealloc 
			 | 
		
	
		
			
			| 
				44
			 | 
			
				
			 | 
			
			
				-{ 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				
			 | 
			
			
				-    if(_webView){ 
			 | 
		
	
		
			
			| 
				46
			 | 
			
				
			 | 
			
			
				-        [_webView removeObserver:self forKeyPath:@"estimatedProgress"]; 
			 | 
		
	
		
			
			| 
				47
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				48
			 | 
			
				
			 | 
			
			
				-} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				43
			 | 
			
			
				+- (void)dealloc{} 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				44
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				50
			 | 
			
				45
			 | 
			
			
				 /** 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				46
			 | 
			
			
				  * See https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DisplayWebContent/Tasks/WebKitAvail.html. 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -131,22 +126,34 @@ static NSString *const MessageHanderName = @"ReactNative"; 
			 | 
		
	
		
			
			| 
				131
			 | 
			
				126
			 | 
			
			
				     [self addSubview:_webView]; 
			 | 
		
	
		
			
			| 
				132
			 | 
			
				127
			 | 
			
			
				     [self setHideKeyboardAccessoryView: _savedHideKeyboardAccessoryView]; 
			 | 
		
	
		
			
			| 
				133
			 | 
			
				128
			 | 
			
			
				     [self visitSource]; 
			 | 
		
	
		
			
			| 
				134
			 | 
			
				
			 | 
			
			
				-  } else { 
			 | 
		
	
		
			
			| 
				135
			 | 
			
				
			 | 
			
			
				-    [_webView.configuration.userContentController removeScriptMessageHandlerForName:MessageHanderName]; 
			 | 
		
	
		
			
			| 
				136
			 | 
			
				129
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				137
			 | 
			
				130
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				138
			 | 
			
				131
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				132
			 | 
			
			
				+- (void)removeFromSuperview 
			 | 
		
	
		
			
			| 
				
			 | 
			
				133
			 | 
			
			
				+{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				134
			 | 
			
			
				+    if (_webView) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				135
			 | 
			
			
				+        [_webView.configuration.userContentController removeScriptMessageHandlerForName:MessageHanderName]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				136
			 | 
			
			
				+        [_webView removeObserver:self forKeyPath:@"estimatedProgress"]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				137
			 | 
			
			
				+        [_webView removeFromSuperview]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				138
			 | 
			
			
				+        _webView = nil; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				139
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				140
			 | 
			
			
				+     
			 | 
		
	
		
			
			| 
				
			 | 
			
				141
			 | 
			
			
				+    [super removeFromSuperview]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				142
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				143
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				139
			 | 
			
				144
			 | 
			
			
				 -(void)keyboardWillHide 
			 | 
		
	
		
			
			| 
				140
			 | 
			
				145
			 | 
			
			
				 { 
			 | 
		
	
		
			
			| 
				141
			 | 
			
				146
			 | 
			
			
				     keyboardTimer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(keyboardDisplacementFix) userInfo:nil repeats:false]; 
			 | 
		
	
		
			
			| 
				142
			 | 
			
				147
			 | 
			
			
				     [[NSRunLoop mainRunLoop] addTimer:keyboardTimer forMode:NSRunLoopCommonModes]; 
			 | 
		
	
		
			
			| 
				143
			 | 
			
				148
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				149
			 | 
			
			
				+   
			 | 
		
	
		
			
			| 
				144
			 | 
			
				150
			 | 
			
			
				 -(void)keyboardWillShow 
			 | 
		
	
		
			
			| 
				145
			 | 
			
				151
			 | 
			
			
				 { 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				152
			 | 
			
			
				     if (keyboardTimer != nil) { 
			 | 
		
	
		
			
			| 
				147
			 | 
			
				153
			 | 
			
			
				         [keyboardTimer invalidate]; 
			 | 
		
	
		
			
			| 
				148
			 | 
			
				154
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				155
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				156
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				150
			 | 
			
				157
			 | 
			
			
				 -(void)keyboardDisplacementFix 
			 | 
		
	
		
			
			| 
				151
			 | 
			
				158
			 | 
			
			
				 { 
			 | 
		
	
		
			
			| 
				152
			 | 
			
				159
			 | 
			
			
				     // https://stackoverflow.com/a/9637807/824966 
			 |