Salesforce Mobile SDK 入门(01 Get Started with Salesforce Mobile SDK)
本单元奠定基础。我们比较 Mobile SDK 开发与在 Salesforce 应用上构建的区别,纵览 SDK 提供的特性与服务,并了解原生应用开发及要用的工具。
完成本单元后,你将能够:
- 解释 Salesforce Mobile SDK 与 Salesforce 应用开发的区别;
- 描述 Salesforce Mobile SDK 提供的特性。
Salesforce Mobile SDK 开发简介(Introduction to Salesforce Mobile SDK Development)
移动设备已成为我们工作和生活不可或缺的一部分,人们在不同联网设备上创建和消费数据。为应对在移动设备上运营业务的挑战,Salesforce 提供了 Lightning Platform,它在各种移动技术上保证企业级的可靠性、可用性和安全性。
Lightning Platform 提供两种最基础、最全面的移动应用构建与部署选项:
- Salesforce 应用——现成的移动应用;
- Salesforce Mobile SDK——让开发者构建自定义移动应用,可面向员工、客户或伙伴,经 App Store 或 Google Play 分发,用原生或 Web 技术构建,并享有与 Salesforce 应用同等可靠性和安全性。
特性与服务(一):身份、SmartStore 与 Sync(Features and Services (1): Identity, SmartStore, and Sync)
Mobile SDK 通过模块化架构提供完整开发体验:
- 企业身份与安全——完整实现 Salesforce External Client App Policy,支持 SAML 和高级认证流程,让管理员始终掌控数据访问;
- SmartStore 加密数据库——在本地存取数据、支持灵活数据模型,用 AES-256 加密确保数据始终受保护,适合高响应、任意网络条件下的应用;
- Mobile Sync——用简单 API 在离线数据库与 Salesforce 云之间同步数据,让开发者专注 UI 和业务逻辑,把复杂同步交给 SDK。
特性与服务(二):移动服务与平台(Features and Services (2): Mobile Services and Platforms)
SDK 还提供:
- 移动服务——推送通知、地理定位、分析、协作工具、云端业务逻辑等平台移动服务,能增强应用并减少开发时间;
- Salesforce Experience Cloud 站点——用它可构建面向客户和伙伴的移动应用,享受与员工应用同样的企业特性和可靠性;
- iOS 和 Android——支持两大主流移动操作系统上的开发。
关于原生应用开发(About Native App Development)
Mobile SDK 让你在 iOS 和 Android 上开发原生应用,使用各平台自己的开发工具和语言:
- iOS → Xcode,用 Swift 或 Objective-C;
- Android → Android Studio,用 Java 或 Kotlin。
为什么选原生?最高性能,以及对 OS 和设备功能的完整支持——这对高要求界面和丰富交互至关重要。
访问设备功能(Access to Device Features)
原生应用能直接访问设备能力:
- 快速图形 API——处理大量数据、需要快速刷新时至关重要;
- 流畅动画——游戏、高度交互的报表、照片和声音处理应用需要;
- 内置组件——相机、通讯录、地理定位等设备原生功能可无缝集成,还有 OS 内置的加密存储;
- 易用性——用户偏爱原生应用的性能、外观和手感,加上他们期待的设备功能,应用就更好用。
强大的开发工具(Powerful Development Tools)
原生开发需要集成开发环境(IDE)。Mobile SDK 支持 Xcode(iOS)和 Android Studio(Android)。IDE 提供构建、调试、项目管理、版本控制等专业开发工具。在这些环境里,开发者能享受:
- 成熟的 API 和框架;
- 通过成熟框架和组件轻松实现视觉效果;
- 专业的调试技术。
探索安全与认证(02 Explore Security and Authentication)
本单元让你的应用更安全。我们覆盖 OAuth 2.0 及其术语、走一遍认证流程、并展示外部客户端应用和 scope 设置如何管控访问——以及如何创建一个。
完成本单元后,你将能够:
- 识别 Salesforce 应用中使用的安全与认证方法;
- 描述用外部客户端应用把移动应用与 Salesforce 服务器集成;
- 解释基本的 OAuth 术语;
- 概述 OAuth 认证与 PIN 安全的事件流程。
用 OAuth 2.0 保护并认证你的移动应用(Secure and Authenticate with OAuth 2.0)
安全认证对企业移动应用至关重要。OAuth 2.0 是行业标准协议,能在不交出用户名密码的情况下实现数据访问授权,常被比作软件的「代客泊车钥匙」——代客钥匙让泊车员能开车,却不能打开后备箱或手套箱。
Mobile SDK 内嵌 Salesforce OAuth 2.0 实现:HTML 视图收集用户名密码并发送到服务器,服务器返回一个会话令牌和一个持久刷新令牌,存储在设备上供后续交互使用。
Salesforce 外部客户端应用是移动应用连接 Salesforce 的主要方式,让开发者和管理员都能控制应用如何连接、谁能访问(例如限制客户集合、设置或放宽 IP 范围等)。
熟悉 OAuth 术语(Get Familiar with OAuth Terminology)
OAuth 有自己的词汇表(注意:「consumer」总是指 Mobile SDK 应用):
- Consumer Key(client_id)——应用向 Salesforce 标识自己的值;
- Access Token(访问令牌)——应用代表用户访问受保护资源的凭证,本质是可直接使用的会话 ID;
- Refresh Token(刷新令牌)——无需用户再次批准即可获取新访问令牌;
- Authorization Code(授权码)——代表用户授权、存活时间短的令牌,用于换取访问令牌和刷新令牌;
- External Client App(外部客户端应用)——Salesforce 外部、用 OAuth 协议同时验证 Salesforce 用户和外部应用的应用。
OAuth2 认证流程(一):首次授权流程(Authentication Flow (1): First-Time)
OAuth 授权期间的事件流程取决于设备上的认证状态。首次授权流程:
- 客户打开 Mobile SDK 应用;
- 出现认证提示;
- 客户输入用户名和密码;
- 应用把凭据发送给 Salesforce,收到会话 ID 作为认证成功确认;
- 客户批准应用请求的访问授权;
- 应用启动。
此后令牌被存储,后续启动会快得多。
OAuth2 认证流程(二):持续授权(Authentication Flow (2): Ongoing)
回访用户几乎察觉不到认证:
- 客户打开移动应用;
- 如果会话 ID 仍有效,应用立即启动;
- 如果会话 ID 已过期,应用用首次授权时保存的刷新令牌获取更新的会话 ID;
- 应用启动。
这正是刷新令牌存在的意义——无需再次提示用户,实现无缝的持续访问。
应用锁安全(App-Lock Security)
应用锁为敏感数据增加一层保护:配置后,应用在后台停留指定时间后会锁定,重新打开时提示用户进行操作系统的生物识别或加密质询(指纹、面容、PIN 或密码)。
启用方式:开发者在创建外部客户端应用时勾选 Screen Lock 复选框,移动管理员随后可自定义超时时长。
OAuth2 Web Server 流程(OAuth2 Web Server Flow)
为了更高的安全性,Salesforce 推荐使用 Web Server 流程,因为它包含 Proof Key Code Exchange(PKCE)。PKCE 给授权交换增加了一个加密验证器/质询步骤,使被拦截的授权码无法被攻击者重放。对移动应用集成来说,这是更安全的选择,优先于更简单的流程。
OAuth2 User-Agent 流程(OAuth2 User-Agent Flow)
在 user-agent 流程中,外部客户端应用通过 HTTP 重定向接收访问令牌:Salesforce 把 user-agent 重定向到 Web 服务器或可访问的本地资源,由它提取令牌。为安全,令牌以 URL 上的 # 哈希片段形式提供,避免经 referral header 传给其它服务器。
警告:因为令牌编码在重定向 URL 里,它可能暴露给用户和设备上的其它应用;此流程不使用 client secret(客户端可执行文件在用户设备上,可被检查)。
Scope 参数值(Scope Parameter Values)
OAuth 需要在服务端和客户端两侧配置 scope,两侧的约定构成 scope 契约:
- 服务端——在 Salesforce 的外部客户端应用里定义 scope 权限,决定客户端应用可请求的访问级别。至少让 OAuth 设置与代码一致,大多数应用
refresh_token、web、api就够用; - 客户端——在 Mobile SDK 应用里指定 scope 请求,必须是外部客户端应用 scope 权限的子集。Mobile SDK 13.2 及以后,不提供 scope 则授予所有服务端配置的 scope。
外部客户端应用(External Client Apps)
外部客户端应用是可打包的框架,让第三方应用用 API 和安全协议与 Salesforce 集成。它们还提供:分离用户角色的结构性改进,以及第二代托管打包支持。
Salesforce 推荐使用外部客户端应用,并把现有的本地连接应用迁移过去。注意:某些功能仅连接应用支持,跨多个组织运行的 Mobile SDK 应用仍需连接应用。
创建外部客户端应用(Create an External Client App)
你需要管理员权限(Developer Edition 或 Trailhead Playground 里自动具备)。步骤:
- Setup → 搜索 Apps → 选择 External Client Apps Manager → New External Client App;
- Basic Information:Name 填
Trailhead Intro,Contact Email 填你的邮箱,Distribution State 选 Local(本地)或 Packaged(打包分发); - 在 API 下勾选 Enable OAuth;
- Callback URL 填任意 URL 字符串(真实或虚构均可),如
mysampleapp://auth/success; - 添加 scope:
api、web、refresh_token(或 offline_access),点击 Add 箭头移入 Selected OAuth Scopes; - 取消勾选 Require Secret for Web Server Flow 和 Require Secret for Refresh Token Flow;
- (推荐)勾选 Issue JSON Web Token (JWT)-based access tokens for named users;
- 点击 Create。
完成后建议继续完成 Set Up Your Mobile SDK Developer Tools 徽章。



















