react-native/Libraries/Components
Luke Miles da9a712a9e Add a injectJavaScript method to the WebView component
Summary:
Currently, < WebView > allows you to pass JS to execute within the view. This works great, but there currently is not a way to execute JS after the page is loaded. We needed this for our app.

We noticed that the WebView had messaging support added (see #9762) . Initially, this seemed like more than enough functionality for our use case - just write a function that's injected on initial load that accepts a message with JS, and `eval()` it. However, this broke once we realized that Content Security Policy can block the use of eval on pages. The native methods iOS provide to inject JS allow you to inject JS without CSP interfering. So, we just wrapped the native methods on iOS (and later Android) and it worked for our use case. The method injectJavaScript was born.

Now, after I wrote this code, I realized that #8798 exists and hadn't been merged because of a lack of tests. I commend what was done in #8798 as it sorely solves a problem (injecting JS after the initial load) and has more features than what I'
Closes https://github.com/facebook/react-native/pull/11358

Differential Revision: D4390425

fbshipit-source-id: 02813127f8cf60fd84229cb26eeea7f8922d03b3
2017-01-06 20:29:02 -08:00
..
ActivityIndicator RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
AppleTV Apple TV support 4: support for input (tvOS focus engine) 2016-12-19 06:28:40 -08:00
Clipboard Remove deprecated APIs and modules 2016-10-11 07:43:52 -07:00
DatePicker Stop other views from stealing the responder from PickerIOS and DatePickerIOS 2016-11-07 18:13:53 -08:00
DatePickerAndroid Android datepicker mode configurations added 2016-11-23 04:58:31 -08:00
DrawerAndroid RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
Keyboard relativeKeyboardHeight works wrong in some cases 2016-11-14 11:58:58 -08:00
MapView Add in support for showing annotation callouts by default without the user clicking on the pins 2016-11-20 00:58:28 -08:00
Navigation Apple TV support 4: support for input (tvOS focus engine) 2016-12-19 06:28:40 -08:00
Picker Fix iOS Picker Item Colors 2016-12-03 18:58:29 -08:00
ProgressBarAndroid RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
ProgressViewIOS RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
RefreshControl Add some `Fake`s for easier interaction snapshot testing 2016-12-20 15:58:30 -08:00
ScrollView Add some `Fake`s for easier interaction snapshot testing 2016-12-20 15:58:30 -08:00
SegmentedControlIOS RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
Slider RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
StatusBar Add currentHeight constant to status bar docs 2016-11-05 17:13:29 -07:00
Switch RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
TabBarIOS Apple TV support 4: support for input (tvOS focus engine) 2016-12-19 06:28:40 -08:00
TextInput Fix onKeyPress documentation of TextInput 2016-12-29 16:58:33 -08:00
TimePickerAndroid Clean unused import modules. 2016-10-16 11:13:40 -07:00
ToastAndroid Add very basic usage example for android toast 2016-09-19 06:43:54 -07:00
ToolbarAndroid RN: Update React (2/2) 2016-11-04 05:43:44 -07:00
Touchable fix Touchables inspector 2016-12-22 16:28:34 -08:00
UnimplementedViews Convert from React.createClass to ES6 classes 2016-07-26 01:13:31 -07:00
View Apple TV support 4: support for input (tvOS focus engine) 2016-12-19 06:28:40 -08:00
ViewPager RN: Stop Deep Linking `ReactElement` 2016-10-14 18:59:10 -07:00
WebView Add a injectJavaScript method to the WebView component 2017-01-06 20:29:02 -08:00
Button.js Change require('invariant') to require('fbjs/lib/invariant') 2016-10-16 02:13:52 -07:00
LazyRenderer.js Cleanup: Prefer `React.Element` over `React$?Element` 2016-10-14 08:59:37 -07:00
ScrollResponder.js Fix documentation for scrollResponderScrollNativeHandleToKeyboard 2016-12-16 15:13:36 -08:00
StaticContainer.js RN: Change `onlyChild => React.Children.only` 2016-10-14 18:59:10 -07:00
StaticRenderer.js Reverted commit D4027388 2016-10-16 04:13:42 -07:00
Subscribable.js [ReactNative] clean lint for Libraries/Components 2015-05-18 15:54:07 -08:00