当前位置: 首页 > 知识库问答 >
问题:

Dropbox核心API和同步API

蓝鸿哲
2023-03-14

谢谢,麦克斯

共有1个答案

罗诚
2023-03-14
    null

所有的修改都是在Dropbox核心SDK中完成的,一旦你有了它的源代码。

1)删除OSX专用的所有文件

DBAuthHelperOSX.m
DBKeychain-OSX.m
DBRestClient+OSX.m
DBAuthHelperOSX.h
DBRestClient+OSX.h
DropboxOSX.h
DropboxOSX-Info.plist
DropboxOSX-Prefix.pch
MPOAuthCredentiaIConcreteStore+KeychainAdditionsMac.m

2)将文件DBAccountInfo(.m和.h)重命名为dbaccountInfoold。在SDK的类中查找所有出现的DBAccountInfo并用新名称替换。

6)查找所有出现的“redential”并将其替换为“redentialold”。也更新类的名称。警告:只替换包含属于核心SDK的表达式的变量和类名。例如,在以下情况下,不要替换:usecredential:[NSURLCredentialCredentialForTrust:Challenge.ProtectionSpace.ServerTrust]。这是来自NSURL类的方法,修改会破坏代码。

7)将源文件导入到项目中。从核心SDK导入的所有源文件都不能用ARC运行。这样,必须对这些文件禁用ARC。选择项目并转到构建阶段->编译源,选择与核心SDK有关的所有文件,双击它们并插入-fno-objc-arc

8)如果你编译这个项目,你会发现一些重复的符号:

duplicate symbol _kDBDropboxAPIVersion in:
duplicate symbol _kDBDropboxAPIHost in:
duplicate symbol _kDBDropboxAPIContentHost in:
duplicate symbol _kDBDropboxWebHost in:
duplicate symbol _kDBSDKVersion in:
duplicate symbol _DBErrorDomain in:
duplicate symbol _DBStringFromLogLevel in:
duplicate symbol _DBLogFilePath in:
duplicate symbol _DBSetupLogToFile in:
duplicate symbol _DBLogSetLevel in:
duplicate symbol _DBLogSetCallback in:
duplicate symbol _DBLog in:
duplicate symbol _DBLogInfo in:
duplicate symbol _DBLogWarning in:
duplicate symbol _DBLogError in:
duplicate symbol _DBLogFatal in:

在这些变量名称的末尾添加“old”。不要忘记更新代码,以便所有对这些变量的调用都使用它们的新名称。

9)为了在两个SDK中链接您的Dropbox帐户,请转到Core的dbsession+ios.m并在handleurl方法中注释以下行:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:kDBLinkNonce];
[[NSUserDefaults standardUserDefaults] synchronize];

10)在应用程序委托的application:openurl:sourceapplication:annotation:方法中插入以下代码

[[DBSession sharedSession] handleOpenURL:url];//Core API
[[DBAccountManager sharedManager] handleOpenURL:url]; //Datastore API

重要:必须遵守此命令!因为在9)中所做的修改,所以必须在数据存储之前调用来自核心API的handleOpenURL

11)在application:DidFinishLaunchingWithOptions:中插入以下代码:

    //Datastore API
    DBAccountManager *mgr =
    [[DBAccountManager alloc] initWithAppKey:DROPBOX_APP_KEY secret:DROPBOX_APP_SECRET];
    [DBAccountManager setSharedManager:mgr];

    //CoreAPI
    DBSession *dbSession = [[DBSession alloc]initWithAppKey:DROPBOX_APP_KEY
                                                  appSecret:DROPBOX_APP_SECRET
                                                       root:kDBRootDropbox];
    [DBSession setSharedSession:dbSession];

12)要触发链接进程,请使用[[DBAccountManager sharedManager]LinkFromController:Self];

13)若要取消链接,请使用以下行

[[DBAccountManager sharedManager] linkedAccount] unlink];
[[DBSession sharedSession] unlinkAll];
 类似资料:
  • 0.15 新版功能. 该节文档讲述Scrapy核心API,目标用户是开发Scrapy扩展(extensions)和中间件(middlewares)的开发人员。 Crawler API Scrapy API的主要入口是 Crawler 的实例对象, 通过类方法 from_crawler 将它传递给扩展(extensions)。 该对象提供对所有Scrapy核心组件的访问, 也是扩展访问Scrapy核

  • Fastjson API入口类是,常用的序列化操作都可以在JSON类上的静态方法直接完成。 下面是JSON类的常用方法: 方法 说明 public static final Object parse(String text);  把JSON文本转换为JSONObject或者JSONArray public static final JSONObject parseObject(String tex

  • 我一直使用关键字编写Web Api控制器方法,并且一直使用。我最近尝试了一个方法同步,以了解它将如何影响性能,但震惊地发现它对任何其他http请求都没有阻塞影响。 举个例子-- 这样,我就可以运行=>,然后运行任意数量的=>,并且不会阻塞对endpoint的请求。 我最初认为需要将Hello方法变为异步,这样对Goodbyeendpoint的请求就可以毫无延迟地返回。但是使此方法同步/异步没有任何

  • 事件 事件注册 命名参数样式 目标 修饰语 事件引用 API引用 运行时检查API 可用的检查目标 核心异常 核心内构件

  • 问题内容: 你们中的某些人可能知道某些核心Java API对System.gc()进行了显式调用。我知道发生这种情况的两种情况: 蔚来 我相信这样做是为了在系统耗尽“直接”内存时对直接ByteBuffer进行一些清理。 RMI。在这里,原因对我来说还不清楚… 因此,问题是: 是否知道RMI需要System.gc()的原因? 您是否知道核心API(甚至某些其他流行的库)可以直接调用System.gc

  • 由 jquery.ui.core.js 提供的功能。 API 描述 也属于类别 :data() Selector 选择数据已存储在指定的键下的元素。 选择器(Selectors) .disableSelection() 禁用选择匹配的元素集合内的文本内容。 方法(Methods) .enableSelection() 启用选择匹配的元素集合内的文本内容。 方法(Methods) .focus()