ios facebook 升级到最新版本 17.0.0

2024-04-20 05:20

本文主要是介绍ios facebook 升级到最新版本 17.0.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目由 Objective-C 写成,而 facebook 新 sdk 由 swift 写的。

需要用到混编。

官网地址:Facebook-ios-sdk

1. 导入库

按官网文档说的做就行。

填入地址:GitHub - facebook/facebook-ios-sdk: Used to integrate the Facebook Platform with your iOS & tvOS apps.。

添加目标要选,不然不能用。如果没有选,重新加也就可以。

添加成功后,这里可以看到。需要删除也在这里删除。

2.项目设置

建一个空的 .swift 文件,让项目支持 swift 混编。

facebook 用到的 framework 给加上:

AuthenticationServices.framework、SafariServieces.framework

解决引用错误:

3.加代码

引用头文件,AuthenticationServices,SafariServices 需要先加,不然 sdk 编译报错。FBSDKAccessToken.h, FBSDKAuthenticationToken.h 需要用 include,不然找不到。

#import <AuthenticationServices/AuthenticationServices.h>
#import <SafariServices/SafariServices.h>
#import <FBSDKCoreKit/FBSDKCoreKit-Swift.h>
#import <FBSDKLoginKit/FBSDKLoginKit-Swift.h>
#include <FBSDKCoreKit/FBSDKAuthenticationToken.h>
#include <FBSDKCoreKit/FBSDKAccessToken.h>

初始化 sdk:

- (void)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{[[FBSDKApplicationDelegate sharedInstance] application:applicationdidFinishLaunchingWithOptions:launchOptions];[FBSDKApplicationDelegate.sharedInstance initializeSDK];...
}+(NSString*) getPushKeyDeviceToken{return [TxApnsProxy getDeviceToken];
}
- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urloptions:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{...if ([[FBSDKApplicationDelegate sharedInstance] application:application openURL:url options:options]) {return YES;}return YES;
}- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urlsourceApplication:(nullable NSString *)sourceApplicationannotation:(nonnull id)annotation
{...[[FBSDKApplicationDelegate sharedInstance] application:applicationopenURL:urlsourceApplication:sourceApplicationannotation:annotation];return YES;
}

登录调用:

注意调用登录模式:

FBSDKLoginConfiguration 中 tracking 为 FBSDKLoginTrackingLimited 时,result.token 会是空的。但是 result.authenticationToken 会有值。

@property(nonnull,strong) FBSDKLoginManager* fbLogin;
@synthesize fbLogin = _fbLogin;-(void) init
{// 初始化的时候加self.fbLogin = [FBSDKLoginManager new];
}-(void) login
{FBSDKLoginConfiguration *configuration = [[FBSDKLoginConfiguration alloc] initWithPermissions:@[@"public_profile", @"email"]tracking:FBSDKLoginTrackingEnablednonce:@"123"];[self.fbLogin logInFromViewController:[u8sdk (GetViewController)]configuration:configurationcompletion:^(FBSDKLoginManagerLoginResult * result, NSError *error) {if (!error && !result.isCancelled) {// Login successful-把 toekn 给服务器校验NSDictionary *callbackDict = [NSDictionary dictionaryWithObjectsAndKeys:result.token.tokenString, @"token", nil];[self (eventUserLogin):callbackDict];} else {NSDictionary *callbackDict = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"error", nil];[self (eventUserLogin):callbackDict];}}];
}

这篇关于ios facebook 升级到最新版本 17.0.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919368

相关文章

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no