Browse Source

WIP: Android

Jamon Holmgren 6 years ago
parent
commit
d1f442cc51

+ 5
- 5
android/build.gradle View File

1
 apply plugin: 'com.android.library'
1
 apply plugin: 'com.android.library'
2
 
2
 
3
 android {
3
 android {
4
-    compileSdkVersion 23
5
-    buildToolsVersion "25.0.0"
4
+    compileSdkVersion 26
5
+    buildToolsVersion '26.0.3'
6
 
6
 
7
     defaultConfig {
7
     defaultConfig {
8
         minSdkVersion 16
8
         minSdkVersion 16
9
-        targetSdkVersion 22
10
-        versionCode 19
11
-        versionName "1.1.17"
9
+        targetSdkVersion 26
10
+        versionCode 1
11
+        versionName "1.0"
12
     }
12
     }
13
 }
13
 }
14
 
14
 

+ 22
- 0
android/src/main/java/com/infinitered/webview/ReactWebViewModule.java View File

1
+
2
+package com.infinitered.webview;
3
+
4
+import com.facebook.react.bridge.ReactApplicationContext;
5
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
6
+import com.facebook.react.bridge.ReactMethod;
7
+import com.facebook.react.bridge.Callback;
8
+
9
+public class ReactWebViewModule extends ReactContextBaseJavaModule {
10
+
11
+  private final ReactApplicationContext reactContext;
12
+
13
+  public ReactWebViewModule(ReactApplicationContext reactContext) {
14
+    super(reactContext);
15
+    this.reactContext = reactContext;
16
+  }
17
+
18
+  @Override
19
+  public String getName() {
20
+    return "RNCWebView";
21
+  }
22
+}

+ 29
- 0
android/src/main/java/com/infinitered/webview/ReactWebViewPackage.java View File

1
+
2
+package com.infinitered.webview;
3
+
4
+import java.util.Arrays;
5
+import java.util.Collections;
6
+import java.util.List;
7
+
8
+import com.facebook.react.ReactPackage;
9
+import com.facebook.react.bridge.NativeModule;
10
+import com.facebook.react.bridge.ReactApplicationContext;
11
+import com.facebook.react.uimanager.ViewManager;
12
+import com.facebook.react.bridge.JavaScriptModule;
13
+public class ReactWebViewPackage implements ReactPackage {
14
+    @Override
15
+    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
16
+      return Arrays.<NativeModule>asList(new ReactWebViewModule(reactContext));
17
+    }
18
+
19
+    // Deprecated from RN 0.47
20
+    public List<Class<? extends JavaScriptModule>> createJSModules() {
21
+      return Collections.emptyList();
22
+    }
23
+
24
+    @Override
25
+    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
26
+        ReactWebViewManager viewManager = new ReactWebViewManager();
27
+        return Arrays.<ViewManager>asList(viewManager);
28
+    }
29
+}

+ 1
- 1
android/src/main/java/com/infinitered/webview/events/TopLoadingErrorEvent.java View File

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

+ 1
- 1
android/src/main/java/com/infinitered/webview/events/TopLoadingFinishEvent.java View File

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

+ 1
- 1
android/src/main/java/com/infinitered/webview/events/TopLoadingStartEvent.java View File

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

+ 1
- 1
android/src/main/java/com/infinitered/webview/events/TopMessageEvent.java View File

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

+ 8
- 6
js/WebView.android.js View File

9
 
9
 
10
 'use strict';
10
 'use strict';
11
 
11
 
12
-import React from 'React';
12
+import React from 'react';
13
 import PropTypes from 'prop-types';
13
 import PropTypes from 'prop-types';
14
 
14
 
15
 import ReactNative from 'react-native';
15
 import ReactNative from 'react-native';
20
   UIManager,
20
   UIManager,
21
   View,
21
   View,
22
   ViewPropTypes,
22
   ViewPropTypes,
23
-  requireNativeComponent,
24
-  resolveAssetSource
23
+  Image,
24
+  requireNativeComponent
25
 } from 'react-native';
25
 } from 'react-native';
26
 
26
 
27
 import deprecatedPropType from 'deprecated-prop-type';
27
 import deprecatedPropType from 'deprecated-prop-type';
29
 
29
 
30
 import WebViewShared from './WebViewShared';
30
 import WebViewShared from './WebViewShared';
31
 
31
 
32
-const RCT_WEBVIEW_REF = 'webview';
32
+const resolveAssetSource = Image.resolveAssetSource;
33
+
34
+const RNC_WEBVIEW_REF = 'webview';
33
 
35
 
34
 const WebViewState = keyMirror({
36
 const WebViewState = keyMirror({
35
   IDLE: null,
37
   IDLE: null,
310
 
312
 
311
     const webView = (
313
     const webView = (
312
       <NativeWebView
314
       <NativeWebView
313
-        ref={RCT_WEBVIEW_REF}
315
+        ref={RNC_WEBVIEW_REF}
314
         key="webViewKey"
316
         key="webViewKey"
315
         style={webViewStyles}
317
         style={webViewStyles}
316
         source={resolveAssetSource(source)}
318
         source={resolveAssetSource(source)}
422
   };
424
   };
423
 
425
 
424
   getWebViewHandle = () => {
426
   getWebViewHandle = () => {
425
-    return ReactNative.findNodeHandle(this.refs[RCT_WEBVIEW_REF]);
427
+    return ReactNative.findNodeHandle(this.refs[RNC_WEBVIEW_REF]);
426
   };
428
   };
427
 
429
 
428
   onLoadingStart = event => {
430
   onLoadingStart = event => {

+ 0
- 1
js/WebView.ios.js View File

18
   ActivityIndicator,
18
   ActivityIndicator,
19
   EdgeInsetsPropType,
19
   EdgeInsetsPropType,
20
   Linking,
20
   Linking,
21
-  ScrollView,
22
   StyleSheet,
21
   StyleSheet,
23
   Text,
22
   Text,
24
   UIManager,
23
   UIManager,