iOS компонент для интеграции третьих сторон (версия 1.0.1)
Исторические версии
iOS компонент для интеграции третьих сторон (версия 1.0.0)
См. мои блоги iOS компонент для интеграции третьих сторон и Продолжение: iOS компонент для интеграции третьих сторон
Перейти в директорию Example, где находится демонстрационный проект
Запустить команду pod install
для установки зависимостей
➜ Example git:(master) ✗ pod install
Analyzing dependencies
Fetching podspec for `PTTestKit` from `. . /. . /PTTestKit`
Fetching podspec for `PTThirdPlatformKit` from `./`
Downloading dependencies
Using PTTestKit (0.1.0)
Using PTThirdPlatformKit (0.1.0)
Using SDWebImage (4.0.0)
Using WechatOpenSDK (1.7.7)
Using WeiboSDK (3.1.3)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 6 dependencies from the Podfile and 5 total pods installed.
Установка завершена, откройте файл PTThirdPlatformKit.xcworkspace
.
По умолчанию устанавливаются все платформы, но можно изменить конфигурацию в файле Podfile для выбора одной или нескольких платформ, подробнее см. Выбор необходимых третьих сторон
#### Конфигурация третьих сторон
didFinishLaunchingWithOptions
класса AppDelegate выполните конфигурацию платформ```markdown
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Третьи стороны добавляются в виде плагинов
PTThirdPlatformManager* configInstance = [PTThirdPlatformManager sharedInstance];
[configInstance addCustomSharePlatform:PTCustumShareTypeDingTalk managerClass:PTDingTalkManager.class];
[configInstance setPlatform:PTCustumShareTypeDingTalk appID:kDingTalkAppID appKey:nil appSecret:nil redirectURL:nil URLSchemes:nil];
// Регистрация третьих сторон
[configInstance setPlatform:PTThirdPlatformTypeWechat appID:kWXAppID appKey:nil appSecret:kWXAppSecret redirectURL:nil URLSchemes:nil];
[configInstance setPlatform:PTThirdPlatformTypeTencentQQ appID:kTencentAppID appKey:kTencentAppKey appSecret:kTencentAppSecret redirectURL:nil URLSchemes:nil];
[configInstance setPlatform:PTThirdPlatformTypeWeibo appID:kWeiboAppID appKey:kWeiboAppKey appSecret:kWeiboAppSecret redirectURL:kWeiboRedirectURI URLSchemes:nil];
[configInstance setPlatform:PTThirdPlatformTypeAlipay appID:nil appKey:nil appSecret:nil redirectURL:nil URLSchemes:kAlipayURLScheme];
[configInstance thirdPlatConfigWithApplication:application didFinishLaunchingWithOptions:launchOptions];
return YES;
}
openURL
класса AppDelegate
настраиваем обратные вызовы по URL- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[PTThirdPlatformConfigManager sharedInstance] thirdPlatCanOpenUrlWithApplication:application openURL:url sourceApplication:sourceApplication annotation:annotation];
}
Ниже приведены примеры кода для вызова функций входа, размещения и оплаты для различных платформ с использованием сторонних SDK. Для получения более подробной информации можно скачать исходный код проекта.
```objc
- (void)viewDidLoad {
[super viewDidLoad];
typeof(self) __weak weakSelf = self;
[self addActionWithName:@"Вход через QQ" callback:^{
[[PTThirdPlatformConfigManager sharedInstance] signInWithType:PTThirdPlatformTypeTencentQQ fromViewController:weakSelf callback:^(ThirdPlatformUserInfo *userInfo, NSError *err) {
}];
}];
[self addActionWithName:@"Вход через Wechat" callback:^{
[[PTThirdPlatformConfigManager sharedInstance] signInWithType:PTThirdPlatformTypeWechat fromViewController:weakSelf callback:^(ThirdPlatformUserInfo *userInfo, NSError *err) {
}];
}];
[self addActionWithName:@"Вход через Weibo" callback:^{
```markdown
#### Настройка SDK
Проект уже содержит SDK для WeChat, Weibo и QQ. Alipay и QQ были добавлены с использованием framework-пакетов, а WeChat и Weibo — с помощью Pod. Выполните `pod install`, чтобы добавить SDK для WeChat и Weibo. Все необходимые зависимости уже настроены, поэтому дополнительная настройка не требуется.
#### Настройка URL Types
Для этих настроек необходимо самостоятельно заполнить ключи или APPID. Важно, чтобы **URL Schemes для вызова оплаты через Alipay совпадали с настройками в URL Types**.

```Можно скопировать содержимое следующего конфигурационного файла, который включает только конфигурации для WeChat, Weibo, QQ и Alipay. Измените соответствующие настройки для каждой платформы и вставьте их в файл info.plist. Для конфигураций других платформ обратитесь к документации соответствующих платформ.
```ruby
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>ваш идентификатор приложения WeChat</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>alipay</string>
<key>CFBundleURLSchemes</key>
<array>
<string>alipayPlush</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>tencent</string>
<key>CFBundleURLSchemes</key>
<array>
<string>ваш идентификатор приложения QQ</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weibo</string>
<key>CFBundleURLSchemes</key>
<array>
<string>ваш ключ приложения Weibo</string>
</array>
</dict>
</array>
Эти настройки необходимы для вызова сторонних приложений из вашего приложения. Ниже приведены конфигурации для вызова WeChat, Weibo, QQ и Alipay. Для WeChat необходимо указать ваш идентификатор приложения WeChat. Для вызова других сторонних приложений используйте соответствующие конфигурации, указанные в документации сторонних платформ.```ruby LSApplicationQueriesSchemes wechat weixin идентификатор вашего приложения WeChat mqqapi mqq mqqOpensdkSSoLogin mqqconnect mqqopensdkdataline mqqopensdkgrouptribeshare mqqopensdkfriend mqqopensdkapi mqqopensdkapiV2 mqqopensdkapiV3 mqzoneopensdk mqqopensdkapiV3 mqqopensdkapiV3 mqzone mqzonev2 mqzoneshare wtloginqzone mqzonewx mqzoneopensdkapiV2 mqzoneopensdkapi19 mqzoneopensdkapi mqzoneopensdk tim sinaweibohd sinaweibo
``````xml
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<string>dingtalk</string>
<string>dingtalk-open</string>
</array>
```#### Выбор сторонних платформ
Можно настроить различные сторонние платформы через файл `podfile`. Ниже приведен пример конфигурации для встроенных сторонних платформ: Alipay, QQ, Weibo, WeChat. Можно выбрать одну или несколько из них. После изменения `podfile` необходимо выполнить команду `pod install`, чтобы применить конфигурацию.
```ruby
#use_frameworks!
platform :ios, '8.0'
target 'PTThirdPlatformKit_Example' do
pod 'PTTestKit', :path => '.../.../PTTestKit'
pod 'PTThirdPlatformKit', :path => '.'
pod 'PTThirdPlatformKit/AlipayManager', :path => '.'
pod 'PTThirdPlatformKit/TencentManager', :path => '.'
pod 'PTThirdPlatformKit/WeiboManager', :path => '.'
pod 'PTThirdPlatformKit/WXManager', :path => '.'
target 'PTThirdPlatformKit_Tests' do
inherit! :search_paths
end
end
Можно добавить пользовательские сторонние SDK в виде плагинов. После настройки SDK необходимо выполнить следующие шаги:
PTBaseThirdPlatformManager
для создания менеджера стороннего SDKPTAbsThirdPlatformRequestHandler
для создания обработчика низкоуровневых вызовов SDKPTBaseThirdPlatformRespManager
для создания обработчика обратных вызовов SDKВ качестве примера рассмотрим платформу DingTalk. Для нее создаются три связанных класса:
Вызовы методов класса
PTThirdPlatformManager
для добавления пользовательских сторонних платформ:
// Добавление пользовательской сторонней платформы в виде плагина
[[PTThirdPlatformManager sharedInstance] addCustomSharePlatform:PTCustomShareTypeDingTalk managerClass:PTDingTalkManager.class];
[[PTThirdPlatformManager sharedInstance] setPlatform:PTCustomShareTypeDingTalk appID:kDingTalkAppID appKey:nil appSecret:nil redirectURL:nil];
```После выполнения всех шагов можно перейти к разделу "Как использовать" для получения информации о том, как использовать настроенные платформы.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )