Lanjut ke konten
14 Maret 2012 / Jeffrey Hermanto Halimsetiawan

Mengatasi Circular Navigation pada Silverlight for Window Phone


Dalam sebuah aplikasi Silverlight pada Windows Phone model yang menggunakan halaman-halaman sebagai penyusunnya, hampir seluruh aplikasi terdiri dari berbagai halaman dan pengguna mempunyai hak untuk melakukan navigasi back. Untuk setiap aplikasi, Windows Phone juga menyimpan back-stack halaman yang merupakan history dari halaman yang telah dikunjungi pengguna. Dengan cara kerja seperti itu, seringkali developer dihadapkan pada suatu keadaan dimana aplikasi tersebut mengalami loop pada navigasi halamannya.

Loop pada back-stack dari navigasi aplikasi berarti terjadi duplikasi dari halaman yang sama pada back-stack aplikasi. Sebagai contoh kasus dan ilustrasi dapat dilihat pada game Petualangan Aksara di Tanah Jawa berikut:

Ilustrasi Circular Navigation pada Windows Phone 7

Ilustrasi Circular Navigation pada Windows Phone 7

Contoh kasus lainnya terjadi pada saat membuat wizard untuk registrasi yang kadang kala memerlukan banyak inputan sehingga terdiri dari beberapa halaman. Jika kita menggunakan method NavigationServices.Navigate untuk kembali ke MainPage maka kita akan kembali ke GamePage saat kita menekan tombol ‘Back’. Padahal, respon yang diharapkan adalah keluar dari aplikasi.

Solusi untuk mengatasi permasalahan ini adalah dengan menggunakan library NonLinear Navigation Services yang dikembangkan oleh Windows Phone recipes. Langkah-langkah yang dilakukan cukup mudah, yaitu:

  1. Unduh NonLinear Navigation Services pada halaman http://create.msdn.com/downloads/?id=680
  2. Tambahkan project NonLinearNavigationServices pada Solution yang telah dibuat.
  3. Inisialisasikan service tersebut pada bagian akhir dari constructor kelas yang merupakan turunan dari kelas Application
    NonLinearNavigationService.Instance.Initialize(RootFrame);

Untuk lebih jelasnya, silahkan membaca tautan berikut.

Selamat mencoba!

Tinggalkan komentar