Как подключить к проекту нативный 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
<activity
android:name="com.cocos.game.XsollaNativeAuthActivity"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity
android:name="com.cocos.game.wxapi.WXEntryActivity"
android:exported="true"
android:theme="@android:style/Theme.NoTitleBar"/>
- Добавьте библиотеки Xsolla SDK для Android в качестве зависимостей в настройки сборки проекта. Для этого:
- В Android Studio откройте файл
build.gradle
проекта. - В раздел dependencies добавьте следующие строки:
- В Android Studio откройте файл
- kotlin
implementation 'com.xsolla.android:login:1.2.1'
implementation 'com.xsolla.android:login-facebook:1.2.1'
implementation 'com.xsolla.android:login-google:1.2.1'
implementation 'com.xsolla.android:login-wechat:1.2.1'
implementation '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
android.useAndroidX=true
android.enableJetifier=true
- Чтобы изменения вступили в силу, выполните команду
Sync Now
.
- Чтобы изменения вступили в силу, выполните команду
Инициализация Xsolla SDK для Android на стороне Cocos Creator
Перед тем как использовать какую-либо функциональность Xsolla SDK для Android необходимо инициализировать SDK. Для этого добавьте в проект скрипт инициализации через IDE или скопировав файл в директорию проекта.
Вызов нативных Java-методов из TypeScript в Cocos Creator осуществляется при помощи встроенного механизма рефлексии.
В проекте Cocos Creator необходимо вызвать метод xLoginInit
для инициализации Xsolla SDK.
Пример скрипта инициализации:
- typescript
if(sys.platform.toLowerCase() == 'android') {
jsb.reflection.callStaticMethod("com/cocos/game/XsollaNativeAuth", "xLoginInit",
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
Xsolla.settings.loginId, Xsolla.settings.clientId.toString(), "https://login.xsolla.com/api/blank",
this.facebookAppId, this.googleAppId, this.wechatAppId, this.qqAppId);
}
}
start
компонента, прикрепленного к сцене.Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.