Skip to main content

کاربر برنامه

Android
2.6.3

برای استفاده از این امکان 2.6.3 را استفاده کنید.

مدیریت اتریبیوت‌های کاربر برنامه

با استفاده از پوشه می‌توانید رخدادها و ویژگی‌های کاربر خود را سینک کنید. این قابلیت‌ها متناسب Marketing automation خواهند بود

Login / Logout

هنگامی که کاربر Login می‌شود می‌توانید با استفاده از کد زیر این لاگین را ثبت کنید:

val loginData : String? = "some-nullable-data"
Pushe.userLoggedIn(loginData)

همچنین برای Logout نیز این کد قابل استفاده است:

Pushe.userLoggedOut()

و برای گرفتن آخر رخداد گزارش شده:

val isLoggedIn : Boolean = Pushe.isUserLoggedIn()

سینک کاربر با PusheUser

با استفاده از PusheUser می‌توانید یک کاربر بسازید و متناسب با ویژگی‌های کاربر به آن پارامتر اختصاص دهید

ساخت instance از PusheUser

val pusheUser: PusheUser = PusheUser() // No arg constructor

// First name and last name
pusheUser.setFirstName("Ali") // pusheUser.firstName = "Ali"
pusheUser.setLastName("Alizadeh") // pusheUser.lastName = "Alizadeh"
// Get them
val fName = pusheUser.getFirstName() // pusheUser.firstName
val lName = pusheUser.getLastName() // pusheUser.lastName

// Birthdate
val day = 1
val month = 11
val year = 1370
pusheUser.setBirth(day, month, year)
// Get it
val birth: String = pusheUser.getBirth() // "$day,$month,$year" // pusheUser.birth


// City, Country, Region, Locality, postalCode and location
pusheUser.setCity("Tehran") // pusheUser.city = "Tehran"
pusheUser.setCountry("Iran") // pusheUser.country = "Iran"
pusheUser.setRegion("region1") // pusheUser.region = "r1"
pusheUser.setLocality("locality1") // pusheUser.locality = "l1"
pusheUser.setPostalCode("12345678") // pusheUser.postalCode = "12345678"
val lat = 25.2323
val lng = 35.2323
pusheUser.setLocation(lat, lng)
// Get them
val city = pusheUser.getCity() // pusheUser.city
val country = pusheUser.getCountry() // pusheUser.country
val region = pusheUser.getRegion() // pusheUser.region
val locality = pusheUser.getLocality() // pusheUser.locality
val postalCode = pusheUser.getPostalCode() // pusheUser.postalCode
val locationLat = pusheUser.getLocationLat() // pusheUser.locationLat
val locationLng = pusheUser.getLocationLng() // pusheUser.locationLng


// Company
pusheUser.setCompany("Pushe") // pusheUser.company = "Pushe"
// Get it
val company = pusheUser.getCompany() // pusheUser.company

// Gender
pusheUser.setGender(PusheUser.Gender.FEMALE) // pusheUser.gender = PushUser.Gender.FEMALE
// Get it
val gender = pusheUser.getGender() // pusheUser.gender

// Opt-in to SMS
pusheUser.setPhoneNumber("09121234567") // pusheUser.phoneNumber = "09121234567"
pusheUser.setSmsOptedIn(true) // pusheUser.isSmsOptedIn = true
// Get it
val p = pusheUser.getPhoneNumber() // pusheUser.phoneNumber
val isSmsOptedIn = pusheUser.isSmsOptedIn() // pusheUser.isSmsOptedIn

// Opt-in to Email
pusheUser.setEmail("[email protected]")
pusheUser.setEmailOptedIn(true) // pusheUser.isEmailOptedIn = true
// Get it
val mail = pusheUser.getEmail() // pusheUser.email
val isEmailOptedIn = pusheUser.isEmailOptedIn() // pusheUser.isEmailOptedIn

// Custom attributes
// Single attr
pusheUser.setAttribute("key1", "value1")
// Multiple
pusheUser.setAttributes(
mapOf(
"key2" to "value2",
"key1" to "value-new-1" // overrides key1
)
)
// Remove
pusheUser.removeAttr("key1")
// Get it
val attrs: Map<String, String> = pusheUser.getAttributes() // pusheUser.attributes

سینک‌کردن کاربر با instance ساخته‌شده

Pushe.syncUserAttributes(pusheUser)
نکته

امکان chain کردن متدهای setX وجود دارد:

Pushe.syncUserAttributes(
PusheUser()
.setFirstName("Ali")
.setLastName("Alizadeh")
.setCity("Tehran")
)

گرفتن کاربر سینک‌شده

هنگام سینک این instance ذخیره شده و قابل بازیابی‌ست

val pusheUser: PusheUser? = PusheUser.getCurrentUserAttributes()

// Convert to Map<String, Any> (or Map<String, Object> in java)
// Note: possible Any type: String (all single ones) and Map<String, String> (attributes)
val map: Map<String, Any>? = pusheUser?.toMap()
آپدیت کاربر

برای آپدیت می‌توانید ترکیبی از هر دو را استفاده کنید:

Pushe.syncUserAttributes(
Pushe.getCurrentUserAttributes() ?: PusheUser()
.setLocality("New_locality")
.setEmailOptedIn(false)
)