Bladeren bron

Apex Mobile
解决iOS下分享微信报错的问题。

Ray Zhang 8 jaren geleden
bovenliggende
commit
a6b3780d0a

+ 6 - 6
Apex Mobile/Apex Mobile.xcodeproj/project.pbxproj

@@ -90,7 +90,7 @@
 		715709BB20215E0000EFE5C5 /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 715709B320215DFF00EFE5C5 /* NSData+Base64.m */; };
 		715709BC20215E0000EFE5C5 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 715709B620215DFF00EFE5C5 /* LICENSE */; };
 		715709BD20215E0000EFE5C5 /* AESCrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 715709B820215DFF00EFE5C5 /* AESCrypt.m */; };
-		716027D1204D334A003CA085 /* EmailItemProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 716027D0204D334A003CA085 /* EmailItemProvider.m */; };
+		716027D1204D334A003CA085 /* DetailShareItemProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 716027D0204D334A003CA085 /* DetailShareItemProvider.m */; };
 		716027D4204D3D15003CA085 /* LPShareActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 716027D2204D3D15003CA085 /* LPShareActivity.m */; };
 		7162546B201C3AF1009E3A41 /* readme.txt in Resources */ = {isa = PBXBuildFile; fileRef = 7162546A201C3AF1009E3A41 /* readme.txt */; };
 		7162546D201C412E009E3A41 /* ShippingStatusCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7162546C201C412E009E3A41 /* ShippingStatusCell.xib */; };
@@ -310,8 +310,8 @@
 		715709B620215DFF00EFE5C5 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LICENSE; path = "../../RedAnt ERP Mobile/common/AES/LICENSE"; sourceTree = "<group>"; };
 		715709B720215DFF00EFE5C5 /* NSData+CommonCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSData+CommonCrypto.h"; path = "../../RedAnt ERP Mobile/common/AES/NSData+CommonCrypto.h"; sourceTree = "<group>"; };
 		715709B820215DFF00EFE5C5 /* AESCrypt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AESCrypt.m; path = "../../RedAnt ERP Mobile/common/AES/AESCrypt.m"; sourceTree = "<group>"; };
-		716027CF204D334A003CA085 /* EmailItemProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmailItemProvider.h; sourceTree = "<group>"; };
-		716027D0204D334A003CA085 /* EmailItemProvider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EmailItemProvider.m; sourceTree = "<group>"; };
+		716027CF204D334A003CA085 /* DetailShareItemProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DetailShareItemProvider.h; sourceTree = "<group>"; };
+		716027D0204D334A003CA085 /* DetailShareItemProvider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DetailShareItemProvider.m; sourceTree = "<group>"; };
 		716027D2204D3D15003CA085 /* LPShareActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LPShareActivity.m; sourceTree = "<group>"; };
 		716027D3204D3D15003CA085 /* LPShareActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LPShareActivity.h; sourceTree = "<group>"; };
 		7162546A201C3AF1009E3A41 /* readme.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = readme.txt; sourceTree = "<group>"; };
@@ -692,8 +692,8 @@
 			children = (
 				716027D3204D3D15003CA085 /* LPShareActivity.h */,
 				716027D2204D3D15003CA085 /* LPShareActivity.m */,
-				716027CF204D334A003CA085 /* EmailItemProvider.h */,
-				716027D0204D334A003CA085 /* EmailItemProvider.m */,
+				716027CF204D334A003CA085 /* DetailShareItemProvider.h */,
+				716027D0204D334A003CA085 /* DetailShareItemProvider.m */,
 			);
 			name = share;
 			sourceTree = "<group>";
@@ -1271,7 +1271,7 @@
 				71B7999B2021B22D00F8685E /* AMResultViewController.m in Sources */,
 				425CF097201EB2B500750E32 /* JLRefreshHeader.m in Sources */,
 				711DC6B218C30A4800FB1749 /* TableCellEdit.m in Sources */,
-				716027D1204D334A003CA085 /* EmailItemProvider.m in Sources */,
+				716027D1204D334A003CA085 /* DetailShareItemProvider.m in Sources */,
 				71A01D8218C9BA67003307A9 /* DetailContent.m in Sources */,
 				71A003FC18D680560057CDFD /* RetrievePasswordViewController.m in Sources */,
 				71FCDE0720492B5E00B0746B /* MyQLPreviewController.m in Sources */,

BIN
Apex Mobile/Apex Mobile.xcodeproj/project.xcworkspace/xcuserdata/Ray.xcuserdatad/UserInterfaceState.xcuserstate


+ 93 - 13
Apex Mobile/Apex Mobile.xcodeproj/xcuserdata/Ray.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -79,7 +79,7 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "169"
             endingLineNumber = "169"
-            landmarkName = "-tableView:didSelectRowAtIndexPath:"
+            landmarkName = "-tableView:heightForRowAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -102,7 +102,7 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            shouldBeEnabled = "Yes"
+            shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Apex Mobile/ShipSearchController.m"
@@ -111,8 +111,8 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "208"
             endingLineNumber = "208"
-            landmarkName = "-searchBarSearchButtonClicked:"
-            landmarkType = "7">
+            landmarkName = "ShipSearchController"
+            landmarkType = "3">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -138,7 +138,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Apex Mobile/AMResultViewController.m"
-            timestampString = "542184878.6129971"
+            timestampString = "542622945.106516"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "656"
@@ -154,11 +154,11 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Apex Mobile/DetailTabBarController.m"
-            timestampString = "542184878.613066"
+            timestampString = "542622945.106676"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "363"
-            endingLineNumber = "363"
+            startingLineNumber = "388"
+            endingLineNumber = "388"
             landmarkName = "-shareDetail"
             landmarkType = "7">
          </BreakpointContent>
@@ -202,7 +202,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Apex Mobile/AMResultViewController.m"
-            timestampString = "542184878.618155"
+            timestampString = "542622945.107669"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "552"
@@ -234,7 +234,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Apex Mobile/AMResultViewController.m"
-            timestampString = "542184878.6182801"
+            timestampString = "542622945.107834"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "586"
@@ -246,7 +246,7 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            shouldBeEnabled = "Yes"
+            shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Apex Mobile/LocalDocumentsViewController.m"
@@ -294,7 +294,7 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            shouldBeEnabled = "Yes"
+            shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Apex Mobile/ShipSearchController.m"
@@ -303,7 +303,87 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "204"
             endingLineNumber = "204"
-            landmarkName = "-searchBarSearchButtonClicked:"
+            landmarkName = "-searchBarShouldBeginEditing:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Apex Mobile/DetailTabBarController.m"
+            timestampString = "542622945.108063"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "361"
+            endingLineNumber = "361"
+            landmarkName = "-shareDetail"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Apex Mobile/DetailTabBarController.m"
+            timestampString = "542622945.108477"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "384"
+            endingLineNumber = "384"
+            landmarkName = "-shareDetail"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Apex Mobile/DetailShareItemProvider.m"
+            timestampString = "542622945.108901"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "43"
+            endingLineNumber = "43"
+            landmarkName = "-activityViewController:itemForActivityType:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Apex Mobile/DetailShareItemProvider.m"
+            timestampString = "542622945.108969"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "48"
+            endingLineNumber = "48"
+            landmarkName = "-activityViewController:subjectForActivityType:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Apex Mobile/DetailTabBarController.m"
+            timestampString = "542622945.109026"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "356"
+            endingLineNumber = "356"
+            landmarkName = "-shareDetail"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>

+ 1 - 1
Apex Mobile/Apex Mobile/AMResultViewController.m

@@ -12,7 +12,7 @@
 #import "RAUtils.h"
 #import "DetailTabBarController.h"
 #import <QuickLook/QuickLook.h>
-#import "EmailItemProvider.h"
+#import "DetailShareItemProvider.h"
 #import "LPShareActivity.h"
 #import "RAConvertor.h"
 #pragma clang diagnostic push

+ 14 - 0
Apex Mobile/Apex Mobile/DetailShareItemProvider.h

@@ -0,0 +1,14 @@
+//
+//  EmailItemProvider.h
+//  Apex Mobile
+//
+//  Created by Ray on 05/03/2018.
+//  Copyright © 2018 United Software Applications, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface DetailShareItemProvider : NSObject <UIActivityItemSource>
+@property (nonatomic, strong) NSString *subject;
+@property (nonatomic, strong) NSString *body;
+@end

+ 54 - 0
Apex Mobile/Apex Mobile/DetailShareItemProvider.m

@@ -0,0 +1,54 @@
+//
+//  EmailItemProvider.m
+//  Apex Mobile
+//
+//  Created by Ray on 05/03/2018.
+//  Copyright © 2018 United Software Applications, Inc. All rights reserved.
+//
+
+#import "DetailShareItemProvider.h"
+
+@implementation DetailShareItemProvider
+- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
+//    NSLog(@"activityViewControllerPlaceholderItem %@",activityType);
+    return _body;
+}
+
+- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
+    if([activityType isEqualToString:@"com.tencent.xin.sharetimeline"])
+    {
+        if (self.body) {
+            
+            
+            NSString* fname = self.subject;
+            if(fname.length==0)
+                fname=[[NSUUID UUID ] UUIDString];
+            NSString* tempDir = NSTemporaryDirectory();
+            
+            NSString *saveFileName=[NSString stringWithFormat:@"%@.txt",fname ] ;
+            NSString *newFilePath=[tempDir stringByAppendingPathComponent:saveFileName];
+            bool success=[_body writeToFile:newFilePath atomically:true encoding:NSUTF8StringEncoding error:nil];
+            
+            if(success)
+            {
+//                UIImage *imageToShare = [UIImage imageNamed:@"AppIcon"];
+                NSURL *urlToShare = [NSURL fileURLWithPath:newFilePath];
+                return urlToShare;
+//                activityItems = @[subject,urlToShare];
+            }
+            //        activityItems = @[content];
+        }
+    }
+    NSLog(@"itemForActivityType %@",activityType);
+    return _body;
+}
+
+- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType {
+    NSLog(@"subjectForActivityType %@",activityType);
+    return _subject;
+}
+//- (NSString *)activityViewController:(UIActivityViewController *)activityViewController dataTypeIdentifierForActivityType:(UIActivityType)activityType;
+//{
+//    
+//}
+@end

+ 34 - 4
Apex Mobile/Apex Mobile/DetailTabBarController.m

@@ -10,6 +10,7 @@
 #import "AMResultViewController.h"
 #import "LPShareActivity.h"
 #import "RAUtils.h"
+#import "DetailShareItemProvider.h"
 
 @interface DetailTabBarController () <UITabBarControllerDelegate>
 
@@ -356,9 +357,33 @@
     
 //    content = @"Test Body";
     NSArray *activityItems = nil;
-    if (content) {
-        activityItems = @[content];
-    }
+//    if (content) {
+        
+        
+//
+//        NSString* tempDir = NSTemporaryDirectory();
+//
+//        NSString *saveFileName=[NSString stringWithFormat:@"%@.txt",[[NSUUID UUID ] UUIDString] ] ;
+//            NSString *newFilePath=[tempDir stringByAppendingPathComponent:saveFileName];
+//        bool success=[content writeToFile:newFilePath atomically:true encoding:NSUTF8StringEncoding error:nil];
+//
+//        if(success)
+//        {
+//            UIImage *imageToShare = [UIImage imageNamed:@"AppIcon"];
+//            NSURL *urlToShare = [NSURL fileURLWithPath:newFilePath];
+//            activityItems = @[subject,urlToShare];
+//        }
+//        activityItems = @[content];
+//    }
+    
+    
+    
+//    content write
+    
+    NSString *textToShare = content;
+    UIImage *imageToShare = [UIImage imageNamed:@"AppIcon"];
+    NSURL *urlToShare = [NSURL URLWithString:@"http://baidu.com"];
+//activityItems = @[urlToShare,textToShare,imageToShare];
     
     LPShareActivity *share = [[LPShareActivity alloc] init];
     share.to = [to componentsSeparatedByString:@","];
@@ -366,8 +391,13 @@
     share.body = content;
 
     
+    DetailShareItemProvider *detailItem = [DetailShareItemProvider new];
+    detailItem.subject = subject;
+    detailItem.body = content;
+    
+    
     // 服务类型控制器
-    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:@[share]];
+    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[detailItem] applicationActivities:@[share]];
     activityViewController.excludedActivityTypes = @[UIActivityTypeMail];
     activityViewController.modalInPopover = true;
     [self presentViewController:activityViewController animated:YES completion:nil];

BIN
RedAnt ERP Mobile/iSales-USAI.xcodeproj/project.xcworkspace/xcuserdata/Ray.xcuserdatad/UserInterfaceState.xcuserstate


+ 1 - 1
RedAnt ERP Mobile/iSales-USAI.xcodeproj/xcuserdata/ray.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,7 +7,7 @@
 		<key>iSales-USAI.xcscheme</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>5</integer>
+			<integer>0</integer>
 		</dict>
 	</dict>
 </dict>