Parcourir la source

1.微信分享OK

huangxiaodong il y a 1 an
Parent
commit
06546e0a6b
43 fichiers modifiés avec 4586 ajouts et 2329 suppressions
  1. 1 0
      创维盒子/Podfile
  2. 5 1
      创维盒子/Podfile.lock
  3. 1 0
      创维盒子/Pods/Headers/Private/WechatOpenSDK/WXApi.h
  4. 1 0
      创维盒子/Pods/Headers/Private/WechatOpenSDK/WXApiObject.h
  5. 1 0
      创维盒子/Pods/Headers/Private/WechatOpenSDK/WechatAuthSDK.h
  6. 1 0
      创维盒子/Pods/Headers/Public/WechatOpenSDK/WXApi.h
  7. 1 0
      创维盒子/Pods/Headers/Public/WechatOpenSDK/WXApiObject.h
  8. 1 0
      创维盒子/Pods/Headers/Public/WechatOpenSDK/WechatAuthSDK.h
  9. 5 1
      创维盒子/Pods/Manifest.lock
  10. 2423 2291
      创维盒子/Pods/Pods.xcodeproj/project.pbxproj
  11. 58 0
      创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/WechatOpenSDK.xcscheme
  12. 5 0
      创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/xcschememanagement.plist
  13. 3 2
      创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.debug.xcconfig
  14. 3 2
      创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.release.xcconfig
  15. 5 0
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.markdown
  16. 11 0
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.plist
  17. 4 3
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.debug.xcconfig
  18. 4 3
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.release.xcconfig
  19. 5 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.markdown
  20. 11 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.plist
  21. 4 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.debug.xcconfig
  22. 4 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.release.xcconfig
  23. 5 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.markdown
  24. 11 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.plist
  25. 4 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.debug.xcconfig
  26. 4 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig
  27. 13 0
      创维盒子/Pods/Target Support Files/WechatOpenSDK/WechatOpenSDK.debug.xcconfig
  28. 13 0
      创维盒子/Pods/Target Support Files/WechatOpenSDK/WechatOpenSDK.release.xcconfig
  29. 231 0
      创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/WXApi.h
  30. 1410 0
      创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/WXApiObject.h
  31. 68 0
      创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/WechatAuthSDK.h
  32. BIN
      创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/libWechatOpenSDK.a
  33. 14 0
      创维盒子/jiSuanQi_Info.plist
  34. 28 6
      创维盒子/双子星云手机.xcodeproj/project.pbxproj
  35. 20 3
      创维盒子/双子星云手机/AppDelegate/AppDelegate.m
  36. 5 5
      创维盒子/双子星云手机/AppDelegate/PrefixHeader.pch
  37. 17 0
      创维盒子/双子星云手机/AppDelegate/SceneDelegate.m
  38. 10 0
      创维盒子/双子星云手机/Class/Set/MySetViewController.m
  39. 19 0
      创维盒子/双子星云手机/Helpers/customShareManageTool.h
  40. 126 0
      创维盒子/双子星云手机/Helpers/customShareManageTool.m
  41. 11 0
      创维盒子/双子星云手机/Info.plist
  42. 10 0
      创维盒子/计算器.entitlements
  43. 10 0
      创维盒子/隐私保护.entitlements

+ 1 - 0
创维盒子/Podfile

@@ -26,6 +26,7 @@ def all_Pods
   pod 'Bugly'
   pod 'lottie-ios-OC'
   pod 'JJException'
+  pod 'WechatOpenSDK'
 end
 
 target '隐私保护' do

+ 5 - 1
创维盒子/Podfile.lock

@@ -48,6 +48,7 @@ PODS:
   - SDWebImage/Core (5.12.1)
   - SVProgressHUD (2.2.5)
   - TZImagePickerController (3.6.7)
+  - WechatOpenSDK (2.0.4)
 
 DEPENDENCIES:
   - AFNetworking
@@ -64,6 +65,7 @@ DEPENDENCIES:
   - RayProxy (from `./RayProxy`)
   - SDWebImage
   - TZImagePickerController
+  - WechatOpenSDK
 
 SPEC REPOS:
   trunk:
@@ -81,6 +83,7 @@ SPEC REPOS:
     - SDWebImage
     - SVProgressHUD
     - TZImagePickerController
+    - WechatOpenSDK
 
 EXTERNAL SOURCES:
   RayProxy:
@@ -102,7 +105,8 @@ SPEC CHECKSUMS:
   SDWebImage: 4dc3e42d9ec0c1028b960a33ac6b637bb432207b
   SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
   TZImagePickerController: 679ae9fa11e189a9a81291ae96f0a4463be8edc1
+  WechatOpenSDK: 290989072e87b79d52225a01bb4e5e58f6f88593
 
-PODFILE CHECKSUM: 1b29631723e3a6ebe1fde7de92da9ee9c41f10a3
+PODFILE CHECKSUM: 059631c6e427ed97974a993b16668403816d0075
 
 COCOAPODS: 1.11.3

+ 1 - 0
创维盒子/Pods/Headers/Private/WechatOpenSDK/WXApi.h

@@ -0,0 +1 @@
+../../../WechatOpenSDK/OpenSDK2.0.4/WXApi.h

+ 1 - 0
创维盒子/Pods/Headers/Private/WechatOpenSDK/WXApiObject.h

@@ -0,0 +1 @@
+../../../WechatOpenSDK/OpenSDK2.0.4/WXApiObject.h

+ 1 - 0
创维盒子/Pods/Headers/Private/WechatOpenSDK/WechatAuthSDK.h

@@ -0,0 +1 @@
+../../../WechatOpenSDK/OpenSDK2.0.4/WechatAuthSDK.h

+ 1 - 0
创维盒子/Pods/Headers/Public/WechatOpenSDK/WXApi.h

@@ -0,0 +1 @@
+../../../WechatOpenSDK/OpenSDK2.0.4/WXApi.h

+ 1 - 0
创维盒子/Pods/Headers/Public/WechatOpenSDK/WXApiObject.h

@@ -0,0 +1 @@
+../../../WechatOpenSDK/OpenSDK2.0.4/WXApiObject.h

+ 1 - 0
创维盒子/Pods/Headers/Public/WechatOpenSDK/WechatAuthSDK.h

@@ -0,0 +1 @@
+../../../WechatOpenSDK/OpenSDK2.0.4/WechatAuthSDK.h

+ 5 - 1
创维盒子/Pods/Manifest.lock

@@ -48,6 +48,7 @@ PODS:
   - SDWebImage/Core (5.12.1)
   - SVProgressHUD (2.2.5)
   - TZImagePickerController (3.6.7)
+  - WechatOpenSDK (2.0.4)
 
 DEPENDENCIES:
   - AFNetworking
@@ -64,6 +65,7 @@ DEPENDENCIES:
   - RayProxy (from `./RayProxy`)
   - SDWebImage
   - TZImagePickerController
+  - WechatOpenSDK
 
 SPEC REPOS:
   trunk:
@@ -81,6 +83,7 @@ SPEC REPOS:
     - SDWebImage
     - SVProgressHUD
     - TZImagePickerController
+    - WechatOpenSDK
 
 EXTERNAL SOURCES:
   RayProxy:
@@ -102,7 +105,8 @@ SPEC CHECKSUMS:
   SDWebImage: 4dc3e42d9ec0c1028b960a33ac6b637bb432207b
   SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
   TZImagePickerController: 679ae9fa11e189a9a81291ae96f0a4463be8edc1
+  WechatOpenSDK: 290989072e87b79d52225a01bb4e5e58f6f88593
 
-PODFILE CHECKSUM: 1b29631723e3a6ebe1fde7de92da9ee9c41f10a3
+PODFILE CHECKSUM: 059631c6e427ed97974a993b16668403816d0075
 
 COCOAPODS: 1.11.3

Fichier diff supprimé car celui-ci est trop grand
+ 2423 - 2291
创维盒子/Pods/Pods.xcodeproj/project.pbxproj


+ 58 - 0
创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/WechatOpenSDK.xcscheme

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1240"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "8554F6236D2AA202CF58503D2DF29730"
+               BuildableName = "WechatOpenSDK"
+               BlueprintName = "WechatOpenSDK"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 5 - 0
创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -94,6 +94,11 @@
 			<key>isShown</key>
 			<false/>
 		</dict>
+		<key>WechatOpenSDK.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+		</dict>
 		<key>lottie-ios-OC.xcscheme</key>
 		<dict>
 			<key>isShown</key>

Fichier diff supprimé car celui-ci est trop grand
+ 3 - 2
创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.debug.xcconfig


Fichier diff supprimé car celui-ci est trop grand
+ 3 - 2
创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.release.xcconfig


+ 5 - 0
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.markdown

@@ -282,6 +282,11 @@ SOFTWARE.
 
 
 
+## WechatOpenSDK
+
+Copyright 2020 tencent.com. All rights reserved.
+
+
 ## lottie-ios-OC
 
                                  Apache License

+ 11 - 0
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.plist

@@ -373,6 +373,17 @@ SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>Copyright 2020 tencent.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>WechatOpenSDK</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>                                 Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/

Fichier diff supprimé car celui-ci est trop grand
+ 4 - 3
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.debug.xcconfig


Fichier diff supprimé car celui-ci est trop grand
+ 4 - 3
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.release.xcconfig


+ 5 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.markdown

@@ -282,6 +282,11 @@ SOFTWARE.
 
 
 
+## WechatOpenSDK
+
+Copyright 2020 tencent.com. All rights reserved.
+
+
 ## lottie-ios-OC
 
                                  Apache License

+ 11 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.plist

@@ -373,6 +373,17 @@ SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>Copyright 2020 tencent.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>WechatOpenSDK</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>                                 Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/

Fichier diff supprimé car celui-ci est trop grand
+ 4 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.debug.xcconfig


Fichier diff supprimé car celui-ci est trop grand
+ 4 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.release.xcconfig


+ 5 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.markdown

@@ -282,6 +282,11 @@ SOFTWARE.
 
 
 
+## WechatOpenSDK
+
+Copyright 2020 tencent.com. All rights reserved.
+
+
 ## lottie-ios-OC
 
                                  Apache License

+ 11 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.plist

@@ -373,6 +373,17 @@ SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>Copyright 2020 tencent.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>WechatOpenSDK</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>                                 Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/

Fichier diff supprimé car celui-ci est trop grand
+ 4 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.debug.xcconfig


Fichier diff supprimé car celui-ci est trop grand
+ 4 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig


+ 13 - 0
创维盒子/Pods/Target Support Files/WechatOpenSDK/WechatOpenSDK.debug.xcconfig

@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK
+EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/WechatOpenSDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/WechatOpenSDK"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/WechatOpenSDK
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 13 - 0
创维盒子/Pods/Target Support Files/WechatOpenSDK/WechatOpenSDK.release.xcconfig

@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK
+EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/WechatOpenSDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/WechatOpenSDK"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/WechatOpenSDK
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 231 - 0
创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/WXApi.h

@@ -0,0 +1,231 @@
+//
+//  WXApi.h
+//  所有Api接口
+//
+//  Created by Wechat on 12-2-28.
+//  Copyright (c) 2012年 Tencent. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "WXApiObject.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+typedef BOOL(^WXGrantReadPasteBoardPermissionCompletion)(void);
+
+
+#pragma mark - WXApiDelegate
+/*! @brief 接收并处理来自微信终端程序的事件消息
+ *
+ * 接收并处理来自微信终端程序的事件消息,期间微信界面会切换到第三方应用程序。
+ * WXApiDelegate 会在handleOpenURL:delegate:中使用并触发。
+ */
+@protocol WXApiDelegate <NSObject>
+@optional
+
+/*! @brief 收到一个来自微信的请求,第三方应用程序处理完后调用sendResp向微信发送结果
+ *
+ * 收到一个来自微信的请求,异步处理完成后必须调用sendResp发送处理结果给微信。
+ * 可能收到的请求有GetMessageFromWXReq、ShowMessageFromWXReq等。
+ * @param req 具体请求内容,是自动释放的
+ */
+- (void)onReq:(BaseReq*)req;
+
+
+
+/*! @brief 发送一个sendReq后,收到微信的回应
+ *
+ * 收到一个来自微信的处理结果。调用一次sendReq后会收到onResp。
+ * 可能收到的处理结果有SendMessageToWXResp、SendAuthResp等。
+ * @param resp具体的回应内容,是自动释放的
+ */
+- (void)onResp:(BaseResp*)resp;
+
+/* ! @brief 用于在iOS16以及以上系统上,控制OpenSDK是否读取剪切板中微信传递的数据以及读取的时机
+ * 在iOS16以及以上系统,在SDK需要读取剪切板中微信写入的数据时,会回调该方法。没有实现默认会直接读取微信通过剪切板传递过来的数据
+ * 注意:
+ *      1. 只在iOS16以及以上的系统版本上回调;
+ *      2. 不实现时,OpenSDK会直接调用读取剪切板接口,读取微信传递过来的数据;
+ *      3. 若实现该方法:开发者需要通过调用completion(), 支持异步,通知SDK允许读取剪切板中微信传递的数据,
+ *                    不调用completion()则代表不授权OpenSDK读取剪切板,会导致收不到onReq:, onResp:回调,无法后续业务流程。请谨慎使用
+ *      4. 不要长时间持有completion不释放,可能会导致内存泄漏。
+ */
+- (void)onNeedGrantReadPasteBoardPermissionWithURL:(nonnull NSURL *)openURL completion:(nonnull WXGrantReadPasteBoardPermissionCompletion)completion;
+
+@end
+
+#pragma mark - WXApiLogDelegate
+
+@protocol WXApiLogDelegate <NSObject>
+
+- (void)onLog:(NSString*)log logLevel:(WXLogLevel)level;
+
+@end
+
+
+#pragma mark - WXApi
+
+/*! @brief 微信Api接口函数类
+ *
+ * 该类封装了微信终端SDK的所有接口
+ */
+@interface WXApi : NSObject
+
+/*! @brief WXApi的成员函数,向微信终端程序注册第三方应用。
+ *
+ * 需要在每次启动第三方应用程序时调用。
+ * @attention 请保证在主线程中调用此函数
+ * @param appid 微信开发者ID
+ * @param universalLink 微信开发者Universal Link
+ * @return 成功返回YES,失败返回NO。
+ */
++ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink;
+
+
+/*! @brief 处理旧版微信通过URL启动App时传递的数据
+ *
+ * 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。
+ * @param url 微信启动第三方应用时传递过来的URL
+ * @param delegate  WXApiDelegate对象,用来接收微信触发的消息。
+ * @return 成功返回YES,失败返回NO。
+ */
++ (BOOL)handleOpenURL:(NSURL *)url delegate:(nullable id<WXApiDelegate>)delegate;
+
+
+/*! @brief 处理微信通过Universal Link启动App时传递的数据
+ *
+ * 需要在 application:continueUserActivity:restorationHandler:中调用。
+ * @param userActivity 微信启动第三方应用时系统API传递过来的userActivity
+ * @param delegate  WXApiDelegate对象,用来接收微信触发的消息。
+ * @return 成功返回YES,失败返回NO。
+ */
++ (BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity delegate:(nullable id<WXApiDelegate>)delegate;
+
+
+/*! @brief 检查微信是否已被用户安装
+ *
+ * @return 微信已安装返回YES,未安装返回NO。
+ */
++ (BOOL)isWXAppInstalled;
+
+
+
+/*! @brief 判断当前微信的版本是否支持OpenApi
+ *
+ * @return 支持返回YES,不支持返回NO。
+ */
++ (BOOL)isWXAppSupportApi;
+
+
+/*! @brief 判断当前微信的版本是否支持分享微信状态功能
+ *
+ * @attention 需在工程LSApplicationQueriesSchemes配置中添加weixinStateAPI
+ * @return 支持返回YES,不支持返回NO。
+ */
++ (BOOL)isWXAppSupportStateAPI;
+
+
+#ifndef BUILD_WITHOUT_PAY
+/*! @brief 判断当前微信的版本是否支持二维码拉起微信支付
+ *
+ * @attention 需在工程LSApplicationQueriesSchemes配置中添加weixinQRCodePayAPI
+ * @return 支持返回YES,不支持返回NO。
+ */
++ (BOOL)isWXAppSupportQRCodePayAPI;
+
+#endif
+
+
+/*! @brief 获取微信的itunes安装地址
+ *
+ * @return 微信的安装地址字符串。
+ */
++ (NSString *)getWXAppInstallUrl;
+
+
+
+/*! @brief 获取当前微信SDK的版本号
+ *
+ * @return 返回当前微信SDK的版本号
+ */
++ (NSString *)getApiVersion;
+
+
+
+/*! @brief 打开微信
+ *
+ * @return 成功返回YES,失败返回NO。
+ */
++ (BOOL)openWXApp;
+
+
+
+/*! @brief 发送请求到微信,等待微信返回onResp
+ *
+ * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型
+ * SendAuthReq、SendMessageToWXReq、PayReq等。
+ * @param req 具体的发送请求。
+ * @param completion 调用结果回调block
+ */
++ (void)sendReq:(BaseReq *)req completion:(void (^ __nullable)(BOOL success))completion;
+
+/*! @brief 收到微信onReq的请求,发送对应的应答给微信,并切换到微信界面
+ *
+ * 函数调用后,会切换到微信的界面。第三方应用程序收到微信onReq的请求,异步处理该请求,完成后必须调用该函数。可能发送的相应有
+ * GetMessageFromWXResp、ShowMessageFromWXResp等。
+ * @param resp 具体的应答内容
+ * @param completion 调用结果回调block
+ */
++ (void)sendResp:(BaseResp*)resp completion:(void (^ __nullable)(BOOL success))completion;
+
+
+/*! @brief 发送Auth请求到微信,支持用户没安装微信,等待微信返回onResp
+ *
+ * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持SendAuthReq类型。
+ * @param req 具体的发送请求。
+ * @param viewController 当前界面对象。
+ * @param delegate  WXApiDelegate对象,用来接收微信触发的消息。
+ * @param completion 调用结果回调block
+ */
++ (void)sendAuthReq:(SendAuthReq *)req viewController:(UIViewController*)viewController delegate:(nullable id<WXApiDelegate>)delegate completion:(void (^ __nullable)(BOOL success))completion;
+
+
+/*! @brief 测试函数,用于排查当前App通过Universal Link方式分享到微信的流程
+    注意1:  调用自检函数之前必须要先调用registerApp:universalLink接口, 并确认调用成功
+    注意2:  自检过程中会有Log产生,可以先调用startLogByLevel函数,根据Log排查问题
+    注意3:  会多次回调block
+    注意4:  仅用于新接入SDK时调试使用,请勿在正式环境的调用
+ *
+ *  当completion回调的step为WXULCheckStepFinal时,表示检测通过,Universal Link接入成功
+ *  @param completion 回调Block
+ */
++ (void)checkUniversalLinkReady:(nonnull WXCheckULCompletion)completion;
+
+
+/*! @brief WXApi的成员函数,接受微信的log信息。byBlock
+    注意1:SDK会强引用这个block,注意不要导致内存泄漏,注意不要导致内存泄漏
+    注意2:调用过一次startLog by block之后,如果再调用一次任意方式的startLoad,会释放上一次logBlock,不再回调上一个logBlock
+ *
+ *  @param level 打印log的级别
+ *  @param logBlock 打印log的回调block
+ */
+
++ (void)startLogByLevel:(WXLogLevel)level logBlock:(WXLogBolock)logBlock;
+
+/*! @brief WXApi的成员函数,接受微信的log信息。byDelegate 
+    注意1:sdk会弱引用这个delegate,这里可加任意对象为代理,不需要与WXApiDelegate同一个对象
+    注意2:调用过一次startLog by delegate之后,再调用一次任意方式的startLoad,不会再回调上一个logDelegate对象
+ *  @param level 打印log的级别
+ *  @param logDelegate 打印log的回调代理,
+ */
++ (void)startLogByLevel:(WXLogLevel)level logDelegate:(id<WXApiLogDelegate>)logDelegate;
+
+/*! @brief 停止打印log,会清理block或者delegate为空,释放block
+ *  @param 
+ */
++ (void)stopLog;
+
+@end
+
+NS_ASSUME_NONNULL_END

Fichier diff supprimé car celui-ci est trop grand
+ 1410 - 0
创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/WXApiObject.h


+ 68 - 0
创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/WechatAuthSDK.h

@@ -0,0 +1,68 @@
+//
+//  WechatAuthSDK.h
+//  WechatAuthSDK
+//
+//  Created by 李凯 on 13-11-29.
+//  Copyright (c) 2013年 Tencent. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+enum  AuthErrCode {
+    WechatAuth_Err_Ok = 0,  //Auth成功
+    WechatAuth_Err_NormalErr = -1,  //普通错误
+    WechatAuth_Err_NetworkErr = -2, //网络错误
+    WechatAuth_Err_GetQrcodeFailed = -3,    //获取二维码失败
+    WechatAuth_Err_Cancel = -4,     //用户取消授权
+    WechatAuth_Err_Timeout = -5,    //超时
+};
+
+@protocol WechatAuthAPIDelegate<NSObject>
+@optional
+
+- (void)onAuthGotQrcode:(UIImage *)image;  //得到二维码
+- (void)onQrcodeScanned;    //二维码被扫描
+- (void)onAuthFinish:(int)errCode AuthCode:(nullable NSString *)authCode;    //成功登录
+
+@end
+
+@interface WechatAuthSDK : NSObject{
+    NSString *_sdkVersion;
+    __weak id<WechatAuthAPIDelegate> _delegate;
+}
+
+@property(nonatomic, weak, nullable) id<WechatAuthAPIDelegate> delegate;
+@property(nonatomic, readonly) NSString *sdkVersion;   //authSDK版本号
+
+/*! @brief 发送登录请求,等待WechatAuthAPIDelegate回调
+ *
+ * @param appId 微信开发者ID
+ * @param nonceStr 一个随机的尽量不重复的字符串,用来使得每次的signature不同
+ * @param timeStamp 时间戳
+ * @param scope 应用授权作用域,拥有多个作用域用逗号(,)分隔
+ * @param signature 签名
+ * @param schemeData 会在扫码后拼在scheme后
+ * @return 成功返回YES,失败返回NO
+    注:该实现只保证同时只有一个Auth在运行,Auth未完成或未Stop再次调用Auth接口时会返回NO。
+ */
+
+- (BOOL)Auth:(NSString *)appId
+    nonceStr:(NSString *)nonceStr
+   timeStamp:(NSString *)timeStamp
+       scope:(NSString *)scope
+   signature:(NSString *)signature
+  schemeData:(nullable NSString *)schemeData;
+
+
+/*! @brief 暂停登录请求
+ *
+ * @return 成功返回YES,失败返回NO。
+ */
+- (BOOL)StopAuth;
+
+@end
+
+NS_ASSUME_NONNULL_END

BIN
创维盒子/Pods/WechatOpenSDK/OpenSDK2.0.4/libWechatOpenSDK.a


+ 14 - 0
创维盒子/jiSuanQi_Info.plist

@@ -70,6 +70,20 @@
 		<true/>
 		<key>NSExceptionDomains</key>
 		<dict>
+			<key>14.18.190.141</key>
+			<dict>
+				<key>NSExceptionAllowsInsecureHTTPLoads</key>
+				<true/>
+				<key>NSIncludesSubdomains</key>
+				<true/>
+			</dict>
+			<key>file.phone.androidscloud.com</key>
+			<dict>
+				<key>NSExceptionAllowsInsecureHTTPLoads</key>
+				<true/>
+				<key>NSIncludesSubdomains</key>
+				<true/>
+			</dict>
 			<key>hiboxde.armclouding.com</key>
 			<dict>
 				<key>NSExceptionAllowsInsecureHTTPLoads</key>

+ 28 - 6
创维盒子/双子星云手机.xcodeproj/project.pbxproj

@@ -197,6 +197,8 @@
 		6B21709D2B15CDB600656670 /* NSArray+Log.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B21709B2B15CDB600656670 /* NSArray+Log.m */; };
 		6B2170A02B15D39900656670 /* privacyModeTipViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B21709E2B15D39900656670 /* privacyModeTipViewController.h */; };
 		6B2170A12B15D39900656670 /* privacyModeTipViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B21709F2B15D39900656670 /* privacyModeTipViewController.m */; };
+		6B304E942BEF52A1004F5580 /* customShareManageTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B304E932BEF52A0004F5580 /* customShareManageTool.m */; };
+		6B304E952BEF52A1004F5580 /* customShareManageTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B304E922BEF52A0004F5580 /* customShareManageTool.h */; };
 		6B3A4B152B6F69A500F74679 /* cloudPhoneCommonModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3A4B132B6F69A500F74679 /* cloudPhoneCommonModel.h */; };
 		6B3A4B162B6F69A500F74679 /* cloudPhoneCommonModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3A4B142B6F69A500F74679 /* cloudPhoneCommonModel.m */; };
 		6B3F96342AD2A15A008E349E /* netWorkManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3F96322AD2A15A008E349E /* netWorkManager.h */; };
@@ -1029,6 +1031,8 @@
 		6B21709B2B15CDB600656670 /* NSArray+Log.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Log.m"; sourceTree = "<group>"; };
 		6B21709E2B15D39900656670 /* privacyModeTipViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privacyModeTipViewController.h; sourceTree = "<group>"; };
 		6B21709F2B15D39900656670 /* privacyModeTipViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = privacyModeTipViewController.m; sourceTree = "<group>"; };
+		6B304E922BEF52A0004F5580 /* customShareManageTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = customShareManageTool.h; sourceTree = "<group>"; };
+		6B304E932BEF52A0004F5580 /* customShareManageTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = customShareManageTool.m; sourceTree = "<group>"; };
 		6B3A4B132B6F69A500F74679 /* cloudPhoneCommonModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cloudPhoneCommonModel.h; sourceTree = "<group>"; };
 		6B3A4B142B6F69A500F74679 /* cloudPhoneCommonModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = cloudPhoneCommonModel.m; sourceTree = "<group>"; };
 		6B3F96322AD2A15A008E349E /* netWorkManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = netWorkManager.h; sourceTree = "<group>"; };
@@ -1047,6 +1051,8 @@
 		6B467BB62BC7F7D70039A6A6 /* fileUploadToFileCenterModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileUploadToFileCenterModel.h; sourceTree = "<group>"; };
 		6B467BB72BC7F7D70039A6A6 /* fileUploadToFileCenterModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = fileUploadToFileCenterModel.m; sourceTree = "<group>"; };
 		6B4835FC2B9172D7001FC9BA /* usbInsertAnimation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = usbInsertAnimation.json; sourceTree = "<group>"; };
+		6B4B0B692BEF087E00B62C22 /* 隐私保护.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "隐私保护.entitlements"; sourceTree = "<group>"; };
+		6B4B0B6A2BEF16F200B62C22 /* 计算器.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "计算器.entitlements"; sourceTree = "<group>"; };
 		6B4D23AF2B33DDBB005B718A /* imageVersionRenewTipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = imageVersionRenewTipView.h; sourceTree = "<group>"; };
 		6B4D23B02B33DDBB005B718A /* imageVersionRenewTipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = imageVersionRenewTipView.m; sourceTree = "<group>"; };
 		6B5B605E2B3BC8DE009A2AE2 /* fileTransferPopView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileTransferPopView.h; sourceTree = "<group>"; };
@@ -2142,6 +2148,8 @@
 				A003F6CA27D8425C00715CBF /* RSA.m */,
 				A003F6CB27D8425C00715CBF /* HWDataManager.h */,
 				A003F6CD27D8425C00715CBF /* HWDataManager.m */,
+				6B304E922BEF52A0004F5580 /* customShareManageTool.h */,
+				6B304E932BEF52A0004F5580 /* customShareManageTool.m */,
 			);
 			path = Helpers;
 			sourceTree = "<group>";
@@ -2303,6 +2311,8 @@
 		A02FF68D27D7054200D59D3F = {
 			isa = PBXGroup;
 			children = (
+				6B4B0B6A2BEF16F200B62C22 /* 计算器.entitlements */,
+				6B4B0B692BEF087E00B62C22 /* 隐私保护.entitlements */,
 				A02FF69827D7054200D59D3F /* 双子星云手机 */,
 				A02FF6B427D7054700D59D3F /* 双子星云手机Tests */,
 				A02FF6BE27D7054700D59D3F /* 双子星云手机UITests */,
@@ -2525,6 +2535,7 @@
 				6B1FBD3E2B46875300926382 /* backupsFileRecordCell.h in Headers */,
 				186820192AB94877005702A6 /* GuideLastView.h in Headers */,
 				6B0582632AFF4B7D00D37290 /* PhotoPreviewViewController.h in Headers */,
+				6B304E952BEF52A1004F5580 /* customShareManageTool.h in Headers */,
 				6B5D402F2B4BCBC1000965CF /* downLoadPreViewCell.h in Headers */,
 				6B0581AD2AFCF57300D37290 /* AJPhotoGroupView.h in Headers */,
 				18F9CB072ABD7835003FF71A /* QRCodeScanForChangeDeviceViewController.h in Headers */,
@@ -3454,6 +3465,7 @@
 				A0951D9427ED61F5000E6AC4 /* HWAboutViewController.m in Sources */,
 				183AE5E12A89CD3C00B11CB0 /* SuperModel.m in Sources */,
 				6B4D23B22B33DDBC005B718A /* imageVersionRenewTipView.m in Sources */,
+				6B304E942BEF52A1004F5580 /* customShareManageTool.m in Sources */,
 				6B7272502B0B58E500C03F87 /* uploadFileRecordEditBottomView.m in Sources */,
 				A003F6A927D841C800715CBF /* BaseTabBarController.m in Sources */,
 				A003F6C027D841FF00715CBF /* FLAnimatedImage.m in Sources */,
@@ -3602,6 +3614,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIconJSJ;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
+				CODE_SIGN_ENTITLEMENTS = "计算器.entitlements";
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 31;
@@ -3666,7 +3679,7 @@
 					"$(PROJECT_DIR)/RayProxy",
 				);
 				MARKETING_VERSION = 1.3.3;
-				PRODUCT_BUNDLE_IDENTIFIER = com.wjkxly.wujiCloudPhone;
+				PRODUCT_BUNDLE_IDENTIFIER = com.armcloud.privacy.x.box;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -3684,6 +3697,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIconJSJ;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
+				CODE_SIGN_ENTITLEMENTS = "计算器.entitlements";
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 31;
@@ -3748,7 +3762,7 @@
 					"$(PROJECT_DIR)/RayProxy",
 				);
 				MARKETING_VERSION = 1.3.3;
-				PRODUCT_BUNDLE_IDENTIFIER = com.wjkxly.wujiCloudPhone;
+				PRODUCT_BUNDLE_IDENTIFIER = com.armcloud.privacy.x.box;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -3880,10 +3894,13 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
+				CODE_SIGN_ENTITLEMENTS = "隐私保护.entitlements";
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Automatic;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
 				CURRENT_PROJECT_VERSION = 24;
-				DEVELOPMENT_TEAM = 6SV76WTUUR;
+				DEVELOPMENT_TEAM = "";
+				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 6SV76WTUUR;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/双子星云手机/CloudPlayer",
@@ -3942,6 +3959,7 @@
 				PRODUCT_BUNDLE_IDENTIFIER = com.armcloud.privacy.x.box;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
+				"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = box20240511;
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
@@ -3957,10 +3975,13 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
+				CODE_SIGN_ENTITLEMENTS = "隐私保护.entitlements";
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Automatic;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
 				CURRENT_PROJECT_VERSION = 24;
-				DEVELOPMENT_TEAM = 6SV76WTUUR;
+				DEVELOPMENT_TEAM = "";
+				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 6SV76WTUUR;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/双子星云手机/CloudPlayer",
@@ -4019,6 +4040,7 @@
 				PRODUCT_BUNDLE_IDENTIFIER = com.armcloud.privacy.x.box;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
+				"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = box20240511;
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;

+ 20 - 3
创维盒子/双子星云手机/AppDelegate/AppDelegate.m

@@ -15,8 +15,9 @@
 #import "connectDeviceManager.h"
 #import <Bugly/Bugly.h>
 #import <JJException/JJException.h>
+#import <WXApi.h>
 
-@interface AppDelegate ()<JJExceptionHandle>
+@interface AppDelegate ()<JJExceptionHandle,WXApiDelegate>
 {
     CMMotionManager *cmManager;
 }
@@ -46,7 +47,7 @@
     [JJException registerExceptionHandle:self];
     
     //Default value:NO  no表示异常不退出 YES 表示退出  开发时应该设置为YES
-    //JJException.exceptionWhenTerminate = YES;
+    JJException.exceptionWhenTerminate = YES;
     
     //test code
 //    NSArray * arr = @[];
@@ -114,8 +115,10 @@
     [[UIDevice currentDevice] batteryLevel];
     
     // 监听电池电量变化通知
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryLevelChanged:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
+    //[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryLevelChanged:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
     
+    //微信注册
+    [WXApi registerApp:WXAPPid universalLink:wxuniversalLink];
     
     return YES;
 }
@@ -155,6 +158,20 @@
     });
 }
 
+- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
+    return  [WXApi handleOpenURL:url delegate:self];
+}
+
+- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
+    return [WXApi handleOpenURL:url delegate:self];
+}
+
+- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
+{
+    return [WXApi handleOpenUniversalLink:userActivity delegate:self];
+}
+
+
 #pragma mark 监听网络变化
 -(void)MonitorNetworkChangesFun
 {

+ 5 - 5
创维盒子/双子星云手机/AppDelegate/PrefixHeader.pch

@@ -103,11 +103,11 @@ isBangsScreen; \
 #define Const_File_Access_Key  @"ikIm5C0KjKNvusTF6tIH" //@"13d0arghebcc4cm49cf04"
 #define CloudGameService       @"http://14.18.190.140:9090"
 #define FileAPPManifestKey  Const_File_APP_Manifest_Key_test
-#define WXAPPid @"wxd6397f58cb0d92cf"
-#define WXAppSecret             @"904f823ae1adf8941f53ab939cbf90a4"
-#define wxuniversalLink @"https://3695ec72e83ed102e1ab838d91022997.share2dlink.com"
-#define QQAPPid @"102020350"
-#define QQUniversalLink @"https://3695ec72e83ed102e1ab838d91022997.share2dlink.com/qq_conn/102020350"
+#define WXAPPid @"wx9f3e477e0df9bf03"
+#define WXAppSecret             @""
+#define wxuniversalLink @"https://c0b494fd81055077cdcd8bec3cddcb12.share2dlink.com/"
+#define QQAPPid @"102085690"
+#define QQUniversalLink @"https://c0b494fd81055077cdcd8bec3cddcb12.share2dlink.com/qq_conn/102085690"
 #define  AirPaySecret   @"shuangzixingiOSApp"
 
 #define User_Info_tableName(userName) [[NSString alloc] initWithFormat:@"User_Info_tableName_%@",userName];

+ 17 - 0
创维盒子/双子星云手机/AppDelegate/SceneDelegate.m

@@ -29,6 +29,7 @@
 #import "downloadManager.h"
 #import "backupsFileManager.h"
 #import "iPhone.h"
+#import <WXApi.h>
 
 @interface SceneDelegate ()<SetUsePWDViewControllerDelegate,GuideViewControllerDelegate>
 @property(nonatomic, strong)   CalculatorViewController *calculatorVC;
@@ -409,6 +410,22 @@
     [self showCalculatorVC];
 }
 
+//- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {
+//    [WXApi handleOpenUniversalLink:userActivity delegate:self];
+//}
+
+- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
+    NSEnumerator *enumerator = [URLContexts objectEnumerator];
+    UIOpenURLContext *context;
+    while (context = [enumerator nextObject]) {
+        //NSLog(@"context.URL =====%@",context.URL);
+        //NSLog(@"context.options.sourceApplication ===== %@",context.options.sourceApplication);
+        [WXApi handleOpenURL:context.URL delegate:self];
+    }
+}
+
+
+
 #pragma mark 初始化数据库-DB_BrowserWindows_TableName
 - (void)initBrowserWindow {
     

+ 10 - 0
创维盒子/双子星云手机/Class/Set/MySetViewController.m

@@ -35,6 +35,7 @@
 #import "uploadFileManager.h"
 #import "downloadManager.h"
 #import "clearCacheAlretViewController.h"
+#import "customShareManageTool.h"
 
 @interface MySetViewController ()<HelpDownScrollViewDelegate,UITableViewDelegate,UITableViewDataSource,ComontAlretViewControllerDelegate>
 {
@@ -161,6 +162,15 @@
     HLog(@"hhh %ld",tag);
     KWeakSelf
     switch (tag) {
+        case 100:{
+            [[customShareManageTool sharedManager] shareType:1 withShareUrl:@"https://baidu.com" withShareTitle:@"我是标题" withShareContent:@"我是测试内容"];
+        }
+            break;
+        case 101:{
+            [[customShareManageTool sharedManager] shareType:2 withShareUrl:@"https://baidu.com" withShareTitle:@"我是标题" withShareContent:@"我是测试内容"];
+        }
+            break;
+            
         case 1:
         {
                 if(!ksharedAppDelegate.isWebSockLinkOKAginType){

+ 19 - 0
创维盒子/双子星云手机/Helpers/customShareManageTool.h

@@ -0,0 +1,19 @@
+//
+//  customShareManageTool.h
+//  隐私保护
+//
+//  Created by xd h on 2024/5/11.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface customShareManageTool : NSObject
++ (nonnull instancetype)sharedManager;
+
+// type1 朋友圈 2 微信好友 3 QQ
+- (void)shareType:(NSInteger)type withShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle  withShareContent:(NSString*)shareContent;
+@end
+
+NS_ASSUME_NONNULL_END

+ 126 - 0
创维盒子/双子星云手机/Helpers/customShareManageTool.m

@@ -0,0 +1,126 @@
+//
+//  customShareManageTool.m
+//  隐私保护
+//
+//  Created by xd h on 2024/5/11.
+//
+
+#import "customShareManageTool.h"
+
+//微信分享头文件
+#import "WXApi.h"
+#import "WXApiObject.h"
+
+//QQ分享头文件
+//#import <TencentOpenAPI/TencentOAuth.h>
+//#import <TencentOpenAPI/QQApiInterface.h>
+//#import <TencentOpenAPI/QQApiInterfaceObject.h>
+
+@implementation customShareManageTool
+
++ (nonnull instancetype)sharedManager {
+    static dispatch_once_t once;
+    static id instance;
+    dispatch_once(&once, ^{
+        instance = [[self alloc] init];
+    });
+    return instance;
+}
+
+//分享没有图片 请用自己的AppIcon 作为分享图片
+//shareUrl 分享链接
+//shareTitle 分享标题
+//shareContent 分享内容
+
+// type1 朋友圈 2 微信好友 3 QQ
+- (void)shareType:(NSInteger)type withShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle  withShareContent:(NSString*)shareContent
+{
+    //[[iToast makeText:@"接入云游戏的APP分享请在这里添加代码实现"] show];
+    if(type == 3)
+    {
+        [self shareQQwithShareUrl:shareUrl withShareTitle:shareTitle withShareContent:shareContent];
+    }
+    else if(type == 1 || type == 2)
+    {
+        [self shareWechatByType:type withShareUrl:shareUrl withShareTitle:shareTitle withShareContent:shareContent];
+    }
+//    else{}
+}
+
+- (void)shareQQwithShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle  withShareContent:(NSString*)shareContent
+{
+//    if(![QQApiInterface isSupportShareToQQ])
+//    {
+//        [[iToast makeText:@"未安装QQ,请先安装QQ"] show];
+//        return;
+//    }
+//
+//    //分享没有图片 请用自己的AppIcon 作为分享图片
+//    UIImage *shareImage = [UIImage imageNamed:@"AppIcon"];
+//
+//    /*分享文字+连接*/
+//
+//    QQApiNewsObject *newsObj = [QQApiNewsObject
+//    objectWithURL:[NSURL URLWithString:shareUrl]
+//    title:shareTitle
+//    description:shareContent
+//    previewImageData:UIImagePNGRepresentation(shareImage)];
+//    SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:newsObj];
+//    //将内容分享到qq
+//    QQApiSendResultCode sent = [QQApiInterface sendReq:req];
+//    if (sent != 0) {
+//        [[iToast makeText:@"QQ分享失败,请稍后重试"] show];
+//        KyoLog(@"QQ好友分享失败");
+//    }
+//    else {
+//        KyoLog(@"QQ好友分享成功");
+//    }
+}
+//
+// type1 朋友圈 2 微信好友 3 QQ
+- (void)shareWechatByType:(NSInteger)type withShareUrl:(NSString*)shareUrl withShareTitle:(NSString*)shareTitle  withShareContent:(NSString*)shareContent
+{
+
+    if(![WXApi isWXAppInstalled])
+    {
+        [[iToast makeText:@"未安装微信,请先安装微信"] show];
+        return;
+    }
+
+    //分享没有图片 请用自己的AppIcon 作为分享图片
+     UIImage *shareImage = [UIImage imageNamed:@"PrivateX_icon"];
+
+
+    /*分享文字+连接*/
+
+    WXWebpageObject *webpageObject = [WXWebpageObject object];
+    webpageObject.webpageUrl = shareUrl;
+    WXMediaMessage *message = [WXMediaMessage message];
+    message.title = shareTitle;
+    message.description =  shareContent;
+    [message setThumbImage:shareImage];
+    message.mediaObject = webpageObject;
+    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
+    req.bText = NO;
+    req.message = message;
+    if (type == 2) {
+        req.scene = WXSceneSession;
+    }
+    else{
+        req.scene = WXSceneTimeline;
+    }
+
+    [WXApi sendReq:req completion:^(BOOL success) {
+        if (success == NO) {
+            KyoLog(@"微信分享失败");
+            [[iToast makeText:@"微信分享失败,请稍后重试"] show];
+        }else {
+            KyoLog(@"微信分享成功");
+        }
+    }];
+}
+
+
+
+@end
+

+ 11 - 0
创维盒子/双子星云手机/Info.plist

@@ -25,11 +25,22 @@
 				<string>tencent102020350</string>
 			</array>
 		</dict>
+		<dict>
+			<key>CFBundleTypeRole</key>
+			<string>Editor</string>
+			<key>CFBundleURLName</key>
+			<string>weixin</string>
+			<key>CFBundleURLSchemes</key>
+			<array>
+				<string>wx9f3e477e0df9bf03</string>
+			</array>
+		</dict>
 	</array>
 	<key>ITSAppUsesNonExemptEncryption</key>
 	<false/>
 	<key>LSApplicationQueriesSchemes</key>
 	<array>
+		<string>weixinURLParamsAPI</string>
 		<string>alipay </string>
 		<string>alipayshare</string>
 		<string>wechat</string>

+ 10 - 0
创维盒子/计算器.entitlements

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>com.apple.developer.associated-domains</key>
+	<array>
+		<string>applinks:c0b494fd81055077cdcd8bec3cddcb12.share2dlink.com</string>
+	</array>
+</dict>
+</plist>

+ 10 - 0
创维盒子/隐私保护.entitlements

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>com.apple.developer.associated-domains</key>
+	<array>
+		<string>applinks:c0b494fd81055077cdcd8bec3cddcb12.share2dlink.com</string>
+	</array>
+</dict>
+</plist>