Создайте функцию, которая срабатывает только один раз после установки приложения на телефон
Я разрабатываю мобильное приложение, используя ApacheCordova/Phonegap. Мне нужна функция, которая отправляет мне SMS один раз за установку. Если я добавлю свою функцию в "DeviceReady", она будет запускаться при каждом открытии приложения. Есть ли какое-либо решение для функции, которая будет запущена при установке приложения ИЛИ при первом запуске?
Любое предложение будет оценено.
4 ответа
Я добавил поле в локальное хранилище и при запуске просто проверяю, существует ли это поле. Так что-то вроде этого:
if (window.localStorage.getItem("installed") == undefined) {
/* run function */
window.localStorage.setItem("installed", true);
}
Редактировать: причина, по которой я предпочитаю это другим методам, заключается в том, что это работает на iOS, WP и т. Д., А не только на Android
Проверьте, используется ли метод в первый раз, а затем выполните действие, если этот метод определит, что это первый раз.
Пример:
Метод isFirstTime()
private boolean isFirstTime()
{
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean("RanBefore", false);
if (!ranBefore) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore", true);
editor.commit();
// Send the SMS
}
return ranBefore;
}
Вы можете добавить его в свой onCreate()
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
topLevelLayout = findViewById(R.id.top_layout);
if (isFirstTime()) {
topLevelLayout.setVisibility(View.INVISIBLE);
}
Это должно быть то, что вы ищете:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("firstTime", false))
{
// run your one time code
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
Используйте некоторое логическое значение, если его true, не вызывайте эту функцию другим мудрым вызовом, что пример функции здесь
if(smssent!=true)
{
//call sms sending method
}
else
{
//just leave blank or else notify user using some toast message
}
Примечание:- хранилище логических значений в некоторых базах данных, таких как sharedprefernce или sqllite, files....