罗广聪

contact 可读取电话了

@@ -133,6 +133,7 @@ android { @@ -133,6 +133,7 @@ android {
133 } 133 }
134 134
135 dependencies { 135 dependencies {
  136 + compile project(':react-native-contacts')
136 compile fileTree(dir: "libs", include: ["*.jar"]) 137 compile fileTree(dir: "libs", include: ["*.jar"])
137 compile "com.android.support:appcompat-v7:23.0.1" 138 compile "com.android.support:appcompat-v7:23.0.1"
138 compile "com.facebook.react:react-native:+" // From node_modules 139 compile "com.facebook.react:react-native:+" // From node_modules
@@ -3,6 +3,7 @@ package com.protectgod; @@ -3,6 +3,7 @@ package com.protectgod;
3 import android.app.Application; 3 import android.app.Application;
4 4
5 import com.facebook.react.ReactApplication; 5 import com.facebook.react.ReactApplication;
  6 +import com.rt2zz.reactnativecontacts.ReactNativeContacts;
6 import com.facebook.react.ReactNativeHost; 7 import com.facebook.react.ReactNativeHost;
7 import com.facebook.react.ReactPackage; 8 import com.facebook.react.ReactPackage;
8 import com.facebook.react.shell.MainReactPackage; 9 import com.facebook.react.shell.MainReactPackage;
@@ -22,7 +23,8 @@ public class MainApplication extends Application implements ReactApplication { @@ -22,7 +23,8 @@ public class MainApplication extends Application implements ReactApplication {
22 @Override 23 @Override
23 protected List<ReactPackage> getPackages() { 24 protected List<ReactPackage> getPackages() {
24 return Arrays.<ReactPackage>asList( 25 return Arrays.<ReactPackage>asList(
25 - new MainReactPackage() 26 + new MainReactPackage(),
  27 + new ReactNativeContacts()
26 ); 28 );
27 } 29 }
28 }; 30 };
1 rootProject.name = 'ProtectGod' 1 rootProject.name = 'ProtectGod'
  2 +include ':react-native-contacts'
  3 +project(':react-native-contacts').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-contacts/android')
2 4
3 include ':app' 5 include ':app'
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
37 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 37 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
38 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; 38 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
39 ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; 39 ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
  40 + D518858029F94685B8F3788F /* libRCTContacts.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F79F4C34D704A9EB2F130BA /* libRCTContacts.a */; };
40 /* End PBXBuildFile section */ 41 /* End PBXBuildFile section */
41 42
42 /* Begin PBXContainerItemProxy section */ 43 /* Begin PBXContainerItemProxy section */
@@ -222,6 +223,13 @@ @@ -222,6 +223,13 @@
222 remoteGlobalIDString = ADD01A681E09402E00F6D226; 223 remoteGlobalIDString = ADD01A681E09402E00F6D226;
223 remoteInfo = "RCTBlob-tvOS"; 224 remoteInfo = "RCTBlob-tvOS";
224 }; 225 };
  226 + 74D570A51F7E514F0073FEC9 /* PBXContainerItemProxy */ = {
  227 + isa = PBXContainerItemProxy;
  228 + containerPortal = D84D6CF8E76C444488A4BF29 /* RCTContacts.xcodeproj */;
  229 + proxyType = 2;
  230 + remoteGlobalIDString = 1441618E1BD0A79300FA4F59;
  231 + remoteInfo = RCTContacts;
  232 + };
225 74DC15AE1F68D7360055FE42 /* PBXContainerItemProxy */ = { 233 74DC15AE1F68D7360055FE42 /* PBXContainerItemProxy */ = {
226 isa = PBXContainerItemProxy; 234 isa = PBXContainerItemProxy;
227 containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 235 containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
@@ -295,10 +303,12 @@ @@ -295,10 +303,12 @@
295 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; }; 303 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
296 2D02E47B1E0B4A5D006451C7 /* ProtectGod-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ProtectGod-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 304 2D02E47B1E0B4A5D006451C7 /* ProtectGod-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ProtectGod-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
297 2D02E4901E0B4A5D006451C7 /* ProtectGod-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ProtectGod-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 305 2D02E4901E0B4A5D006451C7 /* ProtectGod-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ProtectGod-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
  306 + 2F79F4C34D704A9EB2F130BA /* libRCTContacts.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTContacts.a; sourceTree = "<group>"; };
298 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; }; 307 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
299 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; }; 308 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
300 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; }; 309 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
301 ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; }; 310 ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
  311 + D84D6CF8E76C444488A4BF29 /* RCTContacts.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTContacts.xcodeproj; path = "../node_modules/react-native-contacts/ios/RCTContacts.xcodeproj"; sourceTree = "<group>"; };
302 /* End PBXFileReference section */ 312 /* End PBXFileReference section */
303 313
304 /* Begin PBXFrameworksBuildPhase section */ 314 /* Begin PBXFrameworksBuildPhase section */
@@ -327,6 +337,7 @@ @@ -327,6 +337,7 @@
327 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 337 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
328 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 338 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
329 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, 339 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
  340 + D518858029F94685B8F3788F /* libRCTContacts.a in Frameworks */,
330 ); 341 );
331 runOnlyForDeploymentPostprocessing = 0; 342 runOnlyForDeploymentPostprocessing = 0;
332 }; 343 };
@@ -474,6 +485,22 @@ @@ -474,6 +485,22 @@
474 name = Products; 485 name = Products;
475 sourceTree = "<group>"; 486 sourceTree = "<group>";
476 }; 487 };
  488 + 74D570821F7E514A0073FEC9 /* Recovered References */ = {
  489 + isa = PBXGroup;
  490 + children = (
  491 + 2F79F4C34D704A9EB2F130BA /* libRCTContacts.a */,
  492 + );
  493 + name = "Recovered References";
  494 + sourceTree = "<group>";
  495 + };
  496 + 74D570A21F7E514E0073FEC9 /* Products */ = {
  497 + isa = PBXGroup;
  498 + children = (
  499 + 74D570A61F7E514F0073FEC9 /* libRCTContacts.a */,
  500 + );
  501 + name = Products;
  502 + sourceTree = "<group>";
  503 + };
477 78C398B11ACF4ADC00677621 /* Products */ = { 504 78C398B11ACF4ADC00677621 /* Products */ = {
478 isa = PBXGroup; 505 isa = PBXGroup;
479 children = ( 506 children = (
@@ -498,6 +525,7 @@ @@ -498,6 +525,7 @@
498 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 525 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
499 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 526 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
500 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, 527 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
  528 + D84D6CF8E76C444488A4BF29 /* RCTContacts.xcodeproj */,
501 ); 529 );
502 name = Libraries; 530 name = Libraries;
503 sourceTree = "<group>"; 531 sourceTree = "<group>";
@@ -518,6 +546,7 @@ @@ -518,6 +546,7 @@
518 832341AE1AAA6A7D00B99B32 /* Libraries */, 546 832341AE1AAA6A7D00B99B32 /* Libraries */,
519 00E356EF1AD99517003FC87E /* ProtectGodTests */, 547 00E356EF1AD99517003FC87E /* ProtectGodTests */,
520 83CBBA001A601CBA00E9B192 /* Products */, 548 83CBBA001A601CBA00E9B192 /* Products */,
  549 + 74D570821F7E514A0073FEC9 /* Recovered References */,
521 ); 550 );
522 indentWidth = 2; 551 indentWidth = 2;
523 sourceTree = "<group>"; 552 sourceTree = "<group>";
@@ -625,7 +654,7 @@ @@ -625,7 +654,7 @@
625 83CBB9F71A601CBA00E9B192 /* Project object */ = { 654 83CBB9F71A601CBA00E9B192 /* Project object */ = {
626 isa = PBXProject; 655 isa = PBXProject;
627 attributes = { 656 attributes = {
628 - LastUpgradeCheck = 0610; 657 + LastUpgradeCheck = 610;
629 ORGANIZATIONNAME = Facebook; 658 ORGANIZATIONNAME = Facebook;
630 TargetAttributes = { 659 TargetAttributes = {
631 00E356ED1AD99517003FC87E = { 660 00E356ED1AD99517003FC87E = {
@@ -673,6 +702,10 @@ @@ -673,6 +702,10 @@
673 ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; 702 ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */;
674 }, 703 },
675 { 704 {
  705 + ProductGroup = 74D570A21F7E514E0073FEC9 /* Products */;
  706 + ProjectRef = D84D6CF8E76C444488A4BF29 /* RCTContacts.xcodeproj */;
  707 + },
  708 + {
676 ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; 709 ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */;
677 ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 710 ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
678 }, 711 },
@@ -888,6 +921,13 @@ @@ -888,6 +921,13 @@
888 remoteRef = 74236DA61F62392F002577D2 /* PBXContainerItemProxy */; 921 remoteRef = 74236DA61F62392F002577D2 /* PBXContainerItemProxy */;
889 sourceTree = BUILT_PRODUCTS_DIR; 922 sourceTree = BUILT_PRODUCTS_DIR;
890 }; 923 };
  924 + 74D570A61F7E514F0073FEC9 /* libRCTContacts.a */ = {
  925 + isa = PBXReferenceProxy;
  926 + fileType = archive.ar;
  927 + path = libRCTContacts.a;
  928 + remoteRef = 74D570A51F7E514F0073FEC9 /* PBXContainerItemProxy */;
  929 + sourceTree = BUILT_PRODUCTS_DIR;
  930 + };
891 74DC15AF1F68D7360055FE42 /* libthird-party.a */ = { 931 74DC15AF1F68D7360055FE42 /* libthird-party.a */ = {
892 isa = PBXReferenceProxy; 932 isa = PBXReferenceProxy;
893 fileType = archive.ar; 933 fileType = archive.ar;
@@ -1076,9 +1116,17 @@ @@ -1076,9 +1116,17 @@
1076 "DEBUG=1", 1116 "DEBUG=1",
1077 "$(inherited)", 1117 "$(inherited)",
1078 ); 1118 );
  1119 + HEADER_SEARCH_PATHS = (
  1120 + "$(inherited)",
  1121 + "$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
  1122 + );
1079 INFOPLIST_FILE = ProtectGodTests/Info.plist; 1123 INFOPLIST_FILE = ProtectGodTests/Info.plist;
1080 IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1124 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1081 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1125 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  1126 + LIBRARY_SEARCH_PATHS = (
  1127 + "$(inherited)",
  1128 + "\"$(SRCROOT)/$(TARGET_NAME)\"",
  1129 + );
1082 OTHER_LDFLAGS = ( 1130 OTHER_LDFLAGS = (
1083 "-ObjC", 1131 "-ObjC",
1084 "-lc++", 1132 "-lc++",
@@ -1094,9 +1142,17 @@ @@ -1094,9 +1142,17 @@
1094 BUNDLE_LOADER = "$(TEST_HOST)"; 1142 BUNDLE_LOADER = "$(TEST_HOST)";
1095 COPY_PHASE_STRIP = NO; 1143 COPY_PHASE_STRIP = NO;
1096 DEVELOPMENT_TEAM = S8LRX49C78; 1144 DEVELOPMENT_TEAM = S8LRX49C78;
  1145 + HEADER_SEARCH_PATHS = (
  1146 + "$(inherited)",
  1147 + "$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
  1148 + );
1097 INFOPLIST_FILE = ProtectGodTests/Info.plist; 1149 INFOPLIST_FILE = ProtectGodTests/Info.plist;
1098 IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1150 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1099 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1151 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  1152 + LIBRARY_SEARCH_PATHS = (
  1153 + "$(inherited)",
  1154 + "\"$(SRCROOT)/$(TARGET_NAME)\"",
  1155 + );
1100 OTHER_LDFLAGS = ( 1156 OTHER_LDFLAGS = (
1101 "-ObjC", 1157 "-ObjC",
1102 "-lc++", 1158 "-lc++",
@@ -1115,6 +1171,10 @@ @@ -1115,6 +1171,10 @@
1115 CURRENT_PROJECT_VERSION = 1; 1171 CURRENT_PROJECT_VERSION = 1;
1116 DEAD_CODE_STRIPPING = NO; 1172 DEAD_CODE_STRIPPING = NO;
1117 DEVELOPMENT_TEAM = S8LRX49C78; 1173 DEVELOPMENT_TEAM = S8LRX49C78;
  1174 + HEADER_SEARCH_PATHS = (
  1175 + "$(inherited)",
  1176 + "$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
  1177 + );
1118 INFOPLIST_FILE = ProtectGod/Info.plist; 1178 INFOPLIST_FILE = ProtectGod/Info.plist;
1119 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1179 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1120 OTHER_LDFLAGS = ( 1180 OTHER_LDFLAGS = (
@@ -1138,6 +1198,10 @@ @@ -1138,6 +1198,10 @@
1138 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1198 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1139 CURRENT_PROJECT_VERSION = 1; 1199 CURRENT_PROJECT_VERSION = 1;
1140 DEVELOPMENT_TEAM = S8LRX49C78; 1200 DEVELOPMENT_TEAM = S8LRX49C78;
  1201 + HEADER_SEARCH_PATHS = (
  1202 + "$(inherited)",
  1203 + "$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
  1204 + );
1141 INFOPLIST_FILE = ProtectGod/Info.plist; 1205 INFOPLIST_FILE = ProtectGod/Info.plist;
1142 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1206 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1143 OTHER_LDFLAGS = ( 1207 OTHER_LDFLAGS = (
@@ -1165,8 +1229,16 @@ @@ -1165,8 +1229,16 @@
1165 DEBUG_INFORMATION_FORMAT = dwarf; 1229 DEBUG_INFORMATION_FORMAT = dwarf;
1166 ENABLE_TESTABILITY = YES; 1230 ENABLE_TESTABILITY = YES;
1167 GCC_NO_COMMON_BLOCKS = YES; 1231 GCC_NO_COMMON_BLOCKS = YES;
  1232 + HEADER_SEARCH_PATHS = (
  1233 + "$(inherited)",
  1234 + "$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
  1235 + );
1168 INFOPLIST_FILE = "ProtectGod-tvOS/Info.plist"; 1236 INFOPLIST_FILE = "ProtectGod-tvOS/Info.plist";
1169 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1237 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
  1238 + LIBRARY_SEARCH_PATHS = (
  1239 + "$(inherited)",
  1240 + "\"$(SRCROOT)/$(TARGET_NAME)\"",
  1241 + );
1170 OTHER_LDFLAGS = ( 1242 OTHER_LDFLAGS = (
1171 "-ObjC", 1243 "-ObjC",
1172 "-lc++", 1244 "-lc++",
@@ -1191,8 +1263,16 @@ @@ -1191,8 +1263,16 @@
1191 COPY_PHASE_STRIP = NO; 1263 COPY_PHASE_STRIP = NO;
1192 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1264 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1193 GCC_NO_COMMON_BLOCKS = YES; 1265 GCC_NO_COMMON_BLOCKS = YES;
  1266 + HEADER_SEARCH_PATHS = (
  1267 + "$(inherited)",
  1268 + "$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
  1269 + );
1194 INFOPLIST_FILE = "ProtectGod-tvOS/Info.plist"; 1270 INFOPLIST_FILE = "ProtectGod-tvOS/Info.plist";
1195 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1271 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
  1272 + LIBRARY_SEARCH_PATHS = (
  1273 + "$(inherited)",
  1274 + "\"$(SRCROOT)/$(TARGET_NAME)\"",
  1275 + );
1196 OTHER_LDFLAGS = ( 1276 OTHER_LDFLAGS = (
1197 "-ObjC", 1277 "-ObjC",
1198 "-lc++", 1278 "-lc++",
@@ -1218,6 +1298,10 @@ @@ -1218,6 +1298,10 @@
1218 GCC_NO_COMMON_BLOCKS = YES; 1298 GCC_NO_COMMON_BLOCKS = YES;
1219 INFOPLIST_FILE = "ProtectGod-tvOSTests/Info.plist"; 1299 INFOPLIST_FILE = "ProtectGod-tvOSTests/Info.plist";
1220 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1300 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  1301 + LIBRARY_SEARCH_PATHS = (
  1302 + "$(inherited)",
  1303 + "\"$(SRCROOT)/$(TARGET_NAME)\"",
  1304 + );
1221 PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.ProtectGod-tvOSTests"; 1305 PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.ProtectGod-tvOSTests";
1222 PRODUCT_NAME = "$(TARGET_NAME)"; 1306 PRODUCT_NAME = "$(TARGET_NAME)";
1223 SDKROOT = appletvos; 1307 SDKROOT = appletvos;
@@ -1239,6 +1323,10 @@ @@ -1239,6 +1323,10 @@
1239 GCC_NO_COMMON_BLOCKS = YES; 1323 GCC_NO_COMMON_BLOCKS = YES;
1240 INFOPLIST_FILE = "ProtectGod-tvOSTests/Info.plist"; 1324 INFOPLIST_FILE = "ProtectGod-tvOSTests/Info.plist";
1241 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1325 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  1326 + LIBRARY_SEARCH_PATHS = (
  1327 + "$(inherited)",
  1328 + "\"$(SRCROOT)/$(TARGET_NAME)\"",
  1329 + );
1242 PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.ProtectGod-tvOSTests"; 1330 PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.ProtectGod-tvOSTests";
1243 PRODUCT_NAME = "$(TARGET_NAME)"; 1331 PRODUCT_NAME = "$(TARGET_NAME)";
1244 SDKROOT = appletvos; 1332 SDKROOT = appletvos;
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0"> 3 <plist version="1.0">
4 <dict> 4 <dict>
  5 + <key>NSContactsUsageDescription</key>
  6 + <string>是否允许访问通信录</string>
5 <key>CFBundleDevelopmentRegion</key> 7 <key>CFBundleDevelopmentRegion</key>
6 <string>en</string> 8 <string>en</string>
7 <key>CFBundleDisplayName</key> 9 <key>CFBundleDisplayName</key>
@@ -51,5 +53,7 @@ @@ -51,5 +53,7 @@
51 </array> 53 </array>
52 <key>UIViewControllerBasedStatusBarAppearance</key> 54 <key>UIViewControllerBasedStatusBarAppearance</key>
53 <false/> 55 <false/>
  56 + <key>LSApplicationCategoryType</key>
  57 + <string></string>
54 </dict> 58 </dict>
55 </plist> 59 </plist>
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 "dependencies": { 9 "dependencies": {
10 "react": "16.0.0-alpha.12", 10 "react": "16.0.0-alpha.12",
11 "react-native": "0.48.1", 11 "react-native": "0.48.1",
  12 + "react-native-contacts": "^1.0.2",
12 "react-native-easy-grid": "^0.1.15", 13 "react-native-easy-grid": "^0.1.15",
13 "react-native-swiper": "^1.5.11", 14 "react-native-swiper": "^1.5.11",
14 "react-navigation": "^1.0.0-beta.11" 15 "react-navigation": "^1.0.0-beta.11"
@@ -14,6 +14,7 @@ import { @@ -14,6 +14,7 @@ import {
14 } from "react-native"; 14 } from "react-native";
15 import { StackNavigator, TabNavigator } from "react-navigation"; 15 import { StackNavigator, TabNavigator } from "react-navigation";
16 import post from "../../utils/fetch"; 16 import post from "../../utils/fetch";
  17 +import Contacts from 'react-native-contacts';
17 18
18 export default class Customer extends Component { 19 export default class Customer extends Component {
19 constructor(props) { 20 constructor(props) {
@@ -43,6 +44,7 @@ export default class Customer extends Component { @@ -43,6 +44,7 @@ export default class Customer extends Component {
43 } 44 }
44 ] 45 ]
45 }; 46 };
  47 + this.getAllPhone = this.getAllPhone.bind(this);
46 } 48 }
47 componentWillMount() { 49 componentWillMount() {
48 this.getAsyncStorage(); 50 this.getAsyncStorage();
@@ -63,16 +65,17 @@ export default class Customer extends Component { @@ -63,16 +65,17 @@ export default class Customer extends Component {
63 phones.push(phone.number); 65 phones.push(phone.number);
64 }); 66 });
65 }); 67 });
66 - post( 68 + console.log("通信录",phones)
67 - "/spreader/rank/friends/contact", 69 + // post(
68 - { contact: phones }, 70 + // "/spreader/rank/friends/contact",
69 - res => { 71 + // { contact: phones },
70 - this.getRankData(); 72 + // res => {
71 - }, 73 + // this.getRankData();
72 - resErr => { 74 + // },
73 - Toast.show(resErr.cnmsg, Toast.error); 75 + // resErr => {
74 - } 76 + // Toast.show(resErr.cnmsg, Toast.error);
75 - ); 77 + // }
  78 + // );
76 } 79 }
77 }); 80 });
78 } 81 }
@@ -124,6 +127,7 @@ export default class Customer extends Component { @@ -124,6 +127,7 @@ export default class Customer extends Component {
124 } else { 127 } else {
125 { 128 {
126 /* navigate("CustomerEdit"); */ 129 /* navigate("CustomerEdit"); */
  130 + this.getAllPhone()
127 } 131 }
128 } 132 }
129 }} 133 }}
@@ -3548,6 +3548,10 @@ react-devtools-core@^2.5.0: @@ -3548,6 +3548,10 @@ react-devtools-core@^2.5.0:
3548 shell-quote "^1.6.1" 3548 shell-quote "^1.6.1"
3549 ws "^2.0.3" 3549 ws "^2.0.3"
3550 3550
  3551 +react-native-contacts@^1.0.2:
  3552 + version "1.0.2"
  3553 + resolved "http://registry.npm.taobao.org/react-native-contacts/download/react-native-contacts-1.0.2.tgz#58b3b0572e3972a320c731ff639091b013a3c4b0"
  3554 +
3551 react-native-dismiss-keyboard@1.0.0: 3555 react-native-dismiss-keyboard@1.0.0:
3552 version "1.0.0" 3556 version "1.0.0"
3553 resolved "http://registry.npm.taobao.org/react-native-dismiss-keyboard/download/react-native-dismiss-keyboard-1.0.0.tgz#32886242b3f2317e121f3aeb9b0a585e2b879b49" 3557 resolved "http://registry.npm.taobao.org/react-native-dismiss-keyboard/download/react-native-dismiss-keyboard-1.0.0.tgz#32886242b3f2317e121f3aeb9b0a585e2b879b49"