WIP: Android

This commit is contained in:
Jamon Holmgren 2018-08-07 23:02:40 -07:00
parent bd2c3bc8c2
commit d1f442cc51
9 changed files with 68 additions and 16 deletions

View File

@ -1,14 +1,14 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
compileSdkVersion 23 compileSdkVersion 26
buildToolsVersion "25.0.0" buildToolsVersion '26.0.3'
defaultConfig { defaultConfig {
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 22 targetSdkVersion 26
versionCode 19 versionCode 1
versionName "1.1.17" versionName "1.0"
} }
} }

View File

@ -0,0 +1,22 @@
package com.infinitered.webview;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;
public class ReactWebViewModule extends ReactContextBaseJavaModule {
private final ReactApplicationContext reactContext;
public ReactWebViewModule(ReactApplicationContext reactContext) {
super(reactContext);
this.reactContext = reactContext;
}
@Override
public String getName() {
return "RNCWebView";
}
}

View File

@ -0,0 +1,29 @@
package com.infinitered.webview;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import com.facebook.react.bridge.JavaScriptModule;
public class ReactWebViewPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
return Arrays.<NativeModule>asList(new ReactWebViewModule(reactContext));
}
// Deprecated from RN 0.47
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
ReactWebViewManager viewManager = new ReactWebViewManager();
return Arrays.<ViewManager>asList(viewManager);
}
}

View File

@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
package com.facebook.react.views.webview.events; package com.infinitered.webview.events;
import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.events.Event; import com.facebook.react.uimanager.events.Event;

View File

@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
package com.facebook.react.views.webview.events; package com.infinitered.webview.events;
import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.events.Event; import com.facebook.react.uimanager.events.Event;

View File

@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
package com.facebook.react.views.webview.events; package com.infinitered.webview.events;
import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.events.Event; import com.facebook.react.uimanager.events.Event;

View File

@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
package com.facebook.react.views.webview.events; package com.infinitered.webview.events;
import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Arguments;

View File

@ -9,7 +9,7 @@
'use strict'; 'use strict';
import React from 'React'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import ReactNative from 'react-native'; import ReactNative from 'react-native';
@ -20,8 +20,8 @@ import {
UIManager, UIManager,
View, View,
ViewPropTypes, ViewPropTypes,
requireNativeComponent, Image,
resolveAssetSource requireNativeComponent
} from 'react-native'; } from 'react-native';
import deprecatedPropType from 'deprecated-prop-type'; import deprecatedPropType from 'deprecated-prop-type';
@ -29,7 +29,9 @@ import keyMirror from 'fbjs/lib/keyMirror';
import WebViewShared from './WebViewShared'; import WebViewShared from './WebViewShared';
const RCT_WEBVIEW_REF = 'webview'; const resolveAssetSource = Image.resolveAssetSource;
const RNC_WEBVIEW_REF = 'webview';
const WebViewState = keyMirror({ const WebViewState = keyMirror({
IDLE: null, IDLE: null,
@ -310,7 +312,7 @@ class WebView extends React.Component {
const webView = ( const webView = (
<NativeWebView <NativeWebView
ref={RCT_WEBVIEW_REF} ref={RNC_WEBVIEW_REF}
key="webViewKey" key="webViewKey"
style={webViewStyles} style={webViewStyles}
source={resolveAssetSource(source)} source={resolveAssetSource(source)}
@ -422,7 +424,7 @@ class WebView extends React.Component {
}; };
getWebViewHandle = () => { getWebViewHandle = () => {
return ReactNative.findNodeHandle(this.refs[RCT_WEBVIEW_REF]); return ReactNative.findNodeHandle(this.refs[RNC_WEBVIEW_REF]);
}; };
onLoadingStart = event => { onLoadingStart = event => {

View File

@ -18,7 +18,6 @@ import {
ActivityIndicator, ActivityIndicator,
EdgeInsetsPropType, EdgeInsetsPropType,
Linking, Linking,
ScrollView,
StyleSheet, StyleSheet,
Text, Text,
UIManager, UIManager,