Как подключить к проекту нативный Xsolla SDK для Android
Для реализации некоторых возможностей в мобильных приложениях (например, для авторизации через социальные сети, возврата в приложение после оплаты покупки) используйте нативный Xsolla SDK для Android.
Чтобы подключить нативный SDK к проекту для Cocos Creator:
- Сгенерируйте проект для Android Studio.
- Подключите к проекту Xsolla SDK для Android.
- Настройте проект в Android Studio.
- Инициализируйте Xsolla SDK для Android на стороне Cocos Creator.
Генерация проекта для Android Studio
- В редакторе Cocos Creator в главном меню выберите пункт Project > Build . Если ранее сборка приложения под платформы не выполнялась, откроется окно создания новой конфигурации для сборки. Если в редакторе уже есть конфигурации для сборки, нажмитеNew Build Task для создания новой конфигурации.
- В окне New Build Configuration выполните следующие изменения:
- В поле Platform из списка доступных платформ для сборки выберитеAndroid .
- В поле APP ABI выберитеarm64-v8a (рекомендуется). Если планируется запускать мобильное приложение на эмуляторе, выберитеx86 .
- В поле Target API Level укажитеandroid-28 или более новый.
 
- В поле 
- Нажмите Build .
В результате в директории <CocosProjectPath>/build/android/proj будет сгенерирован проект для Android Studio. В папке <CocosProjectPath>/native/engine/android будут сгенерированы файлы, которые будут использоваться для всех сборок под Android.
Подключение Xsolla SDK для Android к проекту
- Добавьте в исходный код приложения кастомные Activity из Xsolla SDK. Для этого:- Скопируйте с заменой существующих файлов содержимое папки <CocosProjectPath>/extensions/xsolla-commerce-sdk/native/android/Activitiesв папку<CocosProjectPath>/native/engine/android/app/src/com/cocos/game.
- Откройте файл <CocosProjectPath>/native/engine/android/app/AndroidManifest.xmlв любом текстовом редакторе и добавьте в список Activity следующие строки:
 
- Скопируйте с заменой существующих файлов содержимое папки 
- kotlin
1<activity
2android:name="com.cocos.game.XsollaNativeAuthActivity"
3android:configChanges="orientation|screenSize"
4android:theme="@android:style/Theme.NoTitleBar"/>
5<activity
6android:name="com.cocos.game.wxapi.WXEntryActivity"
7android:exported="true"
8android:theme="@android:style/Theme.NoTitleBar"/>
- Добавьте библиотеки Xsolla SDK для Android в качестве зависимостей в настройки сборки проекта. Для этого:- В Android Studio откройте файл build.gradleпроекта.
- В раздел dependencies добавьте следующие строки:
 
- В Android Studio откройте файл 
- kotlin
1implementation 'com.xsolla.android:login:1.2.1'
2implementation 'com.xsolla.android:login-facebook:1.2.1'
3implementation 'com.xsolla.android:login-google:1.2.1'
4implementation 'com.xsolla.android:login-wechat:1.2.1'
5implementation 'com.xsolla.android:login-qq:1.2.1'
- Чтобы изменения вступили в силу, выполните команду Sync Now.
 
- Чтобы изменения вступили в силу, выполните команду 
В результате Android Studio скачает соответствующие библиотеки, и их методы можно будет использовать в проекте.
Настройка проекта в Android Studio
- В Android Studio откройте проект из директории <CocosProjectPath>/build/android/proj.
- Добавьте в проект нативные библиотеки AndroidX, необходимые для работы Xsolla SDK для Android:- В файле gradle.propertiesдобавьте следующие строки:
 
- В файле 
- kotlin
1android.useAndroidX=true
2android.enableJetifier=true
- Чтобы изменения вступили в силу, выполните команду Sync Now.
 
- Чтобы изменения вступили в силу, выполните команду 
Инициализация Xsolla SDK для Android на стороне Cocos Creator
Перед тем как использовать какую-либо функциональность Xsolla SDK для Android необходимо инициализировать SDK. Для этого добавьте в проект скрипт инициализации через IDE или скопировав файл в директорию проекта.
Вызов нативных Java-методов из TypeScript в Cocos Creator осуществляется при помощи встроенного механизма рефлексии.
В проекте Cocos Creator необходимо вызвать метод xLoginInit для инициализации Xsolla SDK.
Пример скрипта инициализации:
- typescript
1if(sys.platform.toLowerCase() == 'android') {
2    jsb.reflection.callStaticMethod("com/cocos/game/XsollaNativeAuth", "xLoginInit",
3        "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
4        Xsolla.settings.loginId, Xsolla.settings.clientId.toString(), "https://login.xsolla.com/api/blank",
5        this.facebookAppId, this.googleAppId, this.wechatAppId, this.qqAppId);
6
7}
8}
start компонента, прикрепленного к сцене.Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.