1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dhar-YTThirdPlatformManager

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

YTThirdPlatformManager

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 для выбора одной или нескольких платформ, подробнее см. Выбор необходимых третьих сторон #### Конфигурация третьих сторон

  1. В методе 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;
}
  1. В методе 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**.
  ![](https://gitee.com/uploads/images/2017/1101/123222_94d68dd5_300384.png "URL Types. png")
 ```Можно скопировать содержимое следующего конфигурационного файла, который включает только конфигурации для 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>

Конфигурация LSApplicationQueriesSchemes

Эти настройки необходимы для вызова сторонних приложений из вашего приложения. Ниже приведены конфигурации для вызова 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 в виде плагинов. После настройки SDK необходимо выполнить следующие шаги:

  • Наследовать класс PTBaseThirdPlatformManager для создания менеджера стороннего SDK
  • Реализовать интерфейс PTAbsThirdPlatformRequestHandler для создания обработчика низкоуровневых вызовов SDK
  • Наследовать класс PTBaseThirdPlatformRespManager для создания обработчика обратных вызовов SDK

В качестве примера рассмотрим платформу DingTalk. Для нее создаются три связанных класса: Вызовы методов класса PTThirdPlatformManager для добавления пользовательских сторонних платформ:

// Добавление пользовательской сторонней платформы в виде плагина
[[PTThirdPlatformManager sharedInstance] addCustomSharePlatform:PTCustomShareTypeDingTalk managerClass:PTDingTalkManager.class];
[[PTThirdPlatformManager sharedInstance] setPlatform:PTCustomShareTypeDingTalk appID:kDingTalkAppID appKey:nil appSecret:nil redirectURL:nil];
```После выполнения всех шагов можно перейти к разделу "Как использовать" для получения информации о том, как использовать настроенные платформы.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Платформа iOS интегрирует сторонние платформы с помощью компонентного и плагинного подходов. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dhar-YTThirdPlatformManager.git
git@api.gitlife.ru:oschina-mirror/dhar-YTThirdPlatformManager.git
oschina-mirror
dhar-YTThirdPlatformManager
dhar-YTThirdPlatformManager
master