Webasyst
需求
- iOS 13.0+
- Xcode 11+
- Swift 5.1+
示例应用
请注意:使用Webasyst库的样板应用可在以下地址找到:https://github.com/1312inc/Webasyst-X-iOS
安装
Webasyst通过CocoaPods可用。要安装它,只需将以下行添加到您的Podfile中
pod 'Webasyst'
在项目文件夹中执行它
pod install
库配置
库需要初始设置。以下是需要的步骤
- 将库导入到您的项目AppDelegate文件中
import Webasyst
- 在您的项目根目录中创建一个配置文件
Webasyst.plist
,该文件包含以下字段(参考demo应用中的Webasyst.plist.example.plist文件)
"clientId": String // clientId of your application. Example: "72at75391ea785412a24f4568528ed49"
"host": String // Webasyst ID auth domain: "www.webasyst.com"
"scope": String // the scope required by your application (separated by dot). Example: "site.blog.shop"
在此处获取您的Webasyst ID认证客户端ID:https://www.webasyst.com/my/waid/apps/
Webasyst ID API文档:https://developers.webasyst.com/docs/features/webasyst-id-auth/resources-server-api/
创建此文件后,在AppDelegate文件的didFinishLaunchingWithOptions方法中,调用WebasystApp的配置方法
let webasyst = WebasystApp()
webasyst.configure()
- 在bibiloteca配置后,您可以在应用程序的任何地方轻松地使用Webasyst bibiloteca
警告!在登录时检索用户设置列表后,库将通过selectDomainUser键将列表中的活动设置设置到UserDefaults中
方法描述
可以通过XCode自动完成或通过QuickHelp获得所有方法的描述,包括所有参数
-
configure Webasyst库配置方法。
-
url 返回本地存储的URL。
-
getDefaultLocalizedString 返回Webasyst本地化文件中的NSLocalizedString。
- 参数
- key: NSLocalizedString方法的参数;
- comment: NSLocalizedString方法的参数;
- 返回: NSLocalizedString返回的字符串;
- 参数
-
requestFullScreenConfetti 开始为选定的viewController播放纸屑动画。
- 参数
- viewController: 要播放纸屑动画的UIViewController;
- 参数
-
getToken 获取Webasyst令牌的方法。
- 参数
- tokenType: 令牌类型(访问令牌或刷新令牌);
- 返回: 以字符串格式返回请求的令牌;
- 参数
-
authWebasyst (已弃用!!!) Webasyst服务器认证方法. ![#f03c15]
#f03c15
- 参数
- navigationController: 用于显示OAuth webasyst模态窗口的UINavigationController;
- action: 认证完成后执行操作的闭包;
- 参数
-
oAuthLogin 该方法显示一个带有Webasyst授权表单的webView。在表单成功完成之后,用户将被认证并返回用户状态。
-
参数
- merge: 负责合并账户的参数;
- code: 负责合并账户的参数,它从'mergeTwoAccs'方法中获取。
- navigationController: 用于显示OAuth webasyst模态窗口的UINavigationController;
- 操作:在用户授权后执行的操作的闭包;
UserStatus Values: `authorizedButProfileIsEmpty`: Status when a user is authorised but their profile is empty. `authorizedButNoneInstalls`: Status when a user is authorised but has not installs. `authorizedButNoneInstallsAndProfileIsEmpty`: Status when a user is authorised but has not installs and their profile is empty. `authorized`: Status when user is authorized. `networkError(String)`: State when the network is unavailable. `nonAuthorized`: Status when user is not authorized. `error(message: String)`: Status when the server returned an error.
-
-
oAuthAppleID:使用 Apple ID 在 Webasyst 中进行授权;
- 参数
- authData:由 Apple ID 授权控制器发送的授权数据;
- result:包含授权结果的闭包;
- 参数
-
mergeResultCheck:合并结果检查。
- 参数
- completion:在检查返回一个关于结果是否成功以及错误描述的布尔值后执行闭包;
- 参数
-
getAuthCode:请求不使用浏览器的 WAID 授权确认码的方法。
-
参数
- value:应发送确认码的电子邮件或电话号码;
- type:值类型(.email/.phone);
- success:方法执行后执行闭包。包含用户通过电子邮件或短信收到的代码状态,查看 AuthResult 文档以获取状态的详细描述;
AuthResult Server response when authentication is requested Values: `success`: Successful request Tokens saved in Keychain. `no_channels`: Incorrect clientId. `invalid_client`: Not transmitted code_challenge. `require_code_challenge`: Not transmitted code_challenge. `invalid_email`: An invalid string is passed as an email. `invalid_phone`: An invalid string is passed as a phone number. `request_timeout_limit`: Repeat request was sent before timeout was expired. `sent_notification_fail`: The server was unable to send the code. `server_error`: Server error. `undefined`: Unknown error, in the value error, transmits the text of the error.
-
-
sendConfirmCode:在调用 getAuthCode 方法或读取二维码后发送确认码。
- 参数
- type:确认码类型;
- code:用户通过电子邮件或短信或二维码内容收到的代码;
- success:方法执行后执行闭包。布尔值表示服务器是否已接受代码,如果为真则将令牌保存在密钥链中;
- 参数
-
checkInstallApp:应用安装;
- 参数
- app:应用程序名称;
- completion:在检查返回一个关于结果是否成功以及错误描述的布尔值后执行闭包;
- 参数
-
checkLicense:尝试从通过移动应用程序访问令牌的用户中找到一个免费的(未与安装绑定)许可证。如果有一个,则将其绑定到安装上。否则,创建一个与安装绑定的试用产品许可证。
- 参数
- app:应用程序名称;
- completion:检查后执行的闭包。返回用户是否授权的布尔值;
- 参数
-
extendLicense:尝试从通过移动应用程序访问令牌的用户中找到一个免费的(未与安装绑定)许可证。如果有一个,则将其绑定到安装上。否则,创建一个与安装绑定的试用产品许可证。
- 参数
- type:订阅计划类型;
- date:订阅截止日期;
- completion:检查后执行的闭包。返回用户是否授权的布尔值;
- 参数
-
defaultChecking:在 Webasyst 服务器上进行用户身份验证检查;
- 参数
- completion:检查后执行的闭包。返回用户是否授权的布尔值;
- 参数
-
checkUserAuth:在 Webasyst 服务器上进行用户身份验证检查;
- 参数
- completion:更新用户令牌,并检查授权。返回应用程序中的用户状态;
- 参数
-
mergeTwoAccs:连接到另一个应用程序的新免费 WAID 联系人可以反对另一个现有的 WAID 联系人。
- 参数
- completion:返回合并结果代码或错误;
- 参数
-
deleteAccount:方法发送删除当前账户的请求并返回结果。
- 参数
- completion:账户删除结果或错误;
- 参数
-
getAllUserInstall:获取用户安装列表。
- 参数
- completion:所有用户安装的列表,格式为 UserInstall(名称,clientId,域名,accessToken,url);
- 参数
-
updateUserInstalls:从服务器更新和获取用户安装列表
- 参数
- completion:所有用户安装的列表,格式为 UserInstallCodable(名称,clientId,域名,accessToken,url);
- 参数
-
getUserInstall:获取用户安装。
- 参数
- clientId:clientId 设置;
- 返回:安装,格式为 User Install;
- 参数
-
deleteInstall:从数据库中删除安装。
- 参数
- clientId:安装的 clientId;
- 参数
-
getProfileData:返回用户配置文件数据
- 返回:配置文件数据,格式为 ProfileData;
-
updateUserImage:更新当前用户图像。
- 参数
- image:要更新的图像;
- success:方法执行后执行闭包。结果值可以成功或出错;
- 参数
-
deleteUserImage 删除当前用户图片。
- 参数
- image: 方法执行后执行闭包。返回结果值可以是成功或错误。
- 参数
-
changeCurrentUserData 更改当前用户数据。
- 参数
- profile: 传递包含用户信息的数据模型。
- success:方法执行后执行闭包。结果值可以成功或出错;
- 参数
-
createWebasystAccount 创建新的Webasyst账户。
- 参数
- bundle: 正在创建的账户捆绑包。
- plainId: 正在创建的账户平面ID。
- accountDomain: 正在创建的账户域。
- accountName: 正在创建的账户名称。
- completion: 包含创建和重命名新账户的结果。如果成功,返回新账户的客户端ID和URL。
- 参数
-
logOutUser 从账户中注销用户并删除数据库中的所有记录。
- 参数
- completion: 取消授权成功时的布尔值。
- 参数
错误
如果发生错误,将在XCode控制台中显示带有标签“Webasyst错误”的信息。您需要在与技术支持联系时指定错误代码和消息文本。
错误示例
Error Domain=Webasyst warning: https://1312.io The data couldn’t be read because it was missing. Code=205 "(null)"
- 200: 方法实现成功
- 205: 非关键错误,方法运行,但带有警报
- 400: 与中央WAID服务器工作时网络层错误
- 401: 与用户安装服务器工作时网络层错误
- 500: 通用库数据库错误
- 501: 工作于用户设置列表时数据库错误
- 502: 工作用户配置文件时数据库错误
作者
公司: 1312 Inc. [email protected]
授权
Webasyst遵循LGPL授权。请参阅LICENSE文件获取更多信息。