Я не слишком хорошо знаком с написанием плагинов для Android, однако я хотел бы реализовать функцию длинного нажатия кнопки поиска аппаратного обеспечения в приложении Кордовы.Добавление переопределения для onKeyLongPress в Android Phonegap плагин
Я могу успешно сделать это следующим образом:
public class MyClass extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
// Set by <content src="index.html" /> in config.xml
super.loadUrl(Config.getStartUrl());
//super.loadUrl("file:///android_asset/www/index.html");
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
Context cntx = getApplicationContext();
Toast.makeText(cntx, "Long Press", Toast.LENGTH_SHORT).show();
return true;
}
return super.onKeyLongPress(keyCode, event);
}
}
Но я ищу способ поставлять onKeyLongPress переопределение в плагине, а не путем непосредственного редактирования MyClass.java, как описано выше (выше было просто POC).
Как я понимаю, это должно быть переопределением на MyClass, а не CordovaActivity. Как я могу расширить MyClass через мой плагин, считая, что мое понимание верное?
Я знаю, что можно добавить прослушиватель событий, как это:
document.addEventListener("searchbutton", function (e) {
//Do stuff here
}, false);
Однако мое требование является длительным нажатием.
Я попытался следующее:
Создание моего плагина и пытается расширить класс моего приложения:
public class MyPlugin extends MyClass
{
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
Context cntx = getApplicationContext();
Toast.makeText(cntx, "Long Press", Toast.LENGTH_SHORT).show();
return true;
}
return super.onKeyLongPress(keyCode, event);
}
}
Создание моего плагина и пытается расширить CordovaActivity:
public class MyPlugin extends CordovaActivity
{
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
Context cntx = getApplicationContext();
Toast.makeText(cntx, "Long Press", Toast.LENGTH_SHORT).show();
return true;
}
return super.onKeyLongPress(keyCode, event);
}
}
Любые указатели будут благодарны.