Bagikan melalui


Porting Windows Phone Silverlight ke UWP untuk I/O, perangkat, dan model aplikasi

Topik sebelumnya adalah Porting XAML dan UI.

Kode yang terintegrasi dengan perangkat itu sendiri dan sensornya melibatkan input dari, dan output ke, pengguna. Ini juga dapat melibatkan pemrosesan data. Tapi, kode ini umumnya tidak dianggap sebagai lapisan UI atau lapisan data. Kode ini mencakup integrasi dengan pengontrol getaran, akselerometer, giroskop, mikrofon dan speaker (yang berpotongan dengan pengenalan ucapan dan sintesis), (geo)lokasi, dan modalitas input seperti sentuhan, mouse, keyboard, dan pena.

Siklus hidup aplikasi (manajemen masa pakai proses)

Aplikasi Windows Phone Silverlight Anda berisi kode untuk menyimpan dan memulihkan status aplikasinya dan status tampilannya untuk mendukung dikubur dan kemudian diaktifkan kembali. Siklus hidup aplikasi aplikasi Platform Windows Universal (UWP) memiliki paralel yang kuat dengan aplikasi Windows Phone Silverlight, karena keduanya dirancang dengan tujuan yang sama untuk memaksimalkan sumber daya yang tersedia untuk aplikasi mana pun yang telah dipilih pengguna untuk dimiliki di latar depan kapan saja. Anda akan menemukan bahwa kode Anda akan beradaptasi dengan sistem baru dengan mudah.

Catatan Menekan tombol Kembali perangkat keras secara otomatis mengakhiri aplikasi Windows Phone Silverlight. Menekan tombol Kembali perangkat keras pada perangkat seluler tidak secara otomatis mengakhiri aplikasi UWP. Sebaliknya, itu menjadi ditangguhkan, dan kemudian dapat dihentikan. Namun, detail tersebut transparan terhadap aplikasi yang merespons peristiwa siklus hidup aplikasi dengan tepat.

"Jendela debounce" adalah periode waktu antara aplikasi menjadi tidak aktif dan sistem yang meningkatkan peristiwa penangguhan. Untuk aplikasi UWP, tidak ada jendela debounce; peristiwa penangguhan dinaikkan segera setelah aplikasi menjadi tidak aktif.

Untuk informasi selengkapnya, lihat Siklus hidup aplikasi.

Kamera

Kode pengambilan kamera Windows Phone Silverlight menggunakan kelas Microsoft.Devices.Camera, Microsoft.Devices.PhotoCamera, atau Microsoft.Phone.Tasks.CameraCaptureTask . Untuk memindah kode tersebut ke Platform Windows Universal (UWP), Anda dapat menggunakan kelas MediaCapture. Ada contoh kode dalam topik CapturePhotoToStorageFileAsync. Metode itu memungkinkan Anda untuk mengambil foto ke file penyimpanan, dan memerlukan kemampuan perangkat mikrofon dan webcamuntuk diatur dalam manifes paket aplikasi.

Opsi lain adalah kelas CameraCaptureUI, yang juga memerlukan kemampuan perangkat mikrofon dan webcam.

Aplikasi lensa tidak didukung untuk aplikasi UWP.

Mendeteksi platform tempat aplikasi Anda berjalan

Cara berpikir tentang perubahan penargetan aplikasi dengan Windows 10. Model konseptual baru adalah bahwa aplikasi menargetkan Platform Windows Universal (UWP) dan berjalan di semua perangkat Windows. Kemudian dapat memilih untuk menyalakan fitur yang eksklusif untuk keluarga perangkat tertentu. Jika diperlukan, aplikasi ini juga memiliki opsi untuk membatasi dirinya sendiri untuk menargetkan satu atau beberapa keluarga perangkat secara khusus. Untuk informasi selengkapnya tentang apa itu keluarga perangkat—dan cara memutuskan keluarga perangkat mana yang akan ditargetkan—lihat Panduan untuk aplikasi UWP.

Catatan Kami menyarankan agar Anda tidak menggunakan sistem operasi atau keluarga perangkat untuk mendeteksi keberadaan fitur. Mengidentifikasi sistem operasi atau keluarga perangkat saat ini biasanya bukan cara terbaik untuk menentukan apakah sistem operasi atau fitur keluarga perangkat tertentu ada. Alih-alih mendeteksi sistem operasi atau keluarga perangkat (dan nomor versi), uji keberadaan fitur itu sendiri (lihat Kompilasi kondisional, dan kode adaptif). Jika Anda harus memerlukan sistem operasi atau keluarga perangkat tertentu, pastikan untuk menggunakannya sebagai versi minimum yang didukung, daripada merancang pengujian untuk satu versi tersebut.

Untuk menyesuaikan UI aplikasi Anda dengan perangkat yang berbeda, ada beberapa teknik yang kami rekomendasikan. Terus gunakan elemen berukuran otomatis dan panel tata letak dinamis seperti yang selalu Anda miliki. Dalam markup XAML Anda, terus gunakan ukuran dalam piksel yang efektif (sebelumnya melihat piksel) sehingga UI Anda beradaptasi dengan resolusi dan faktor skala yang berbeda (lihat Melihat/efektif piksel, melihat jarak, dan faktor skala.). Dan gunakan pemicu dan setter adaptif Visual State Manager untuk menyesuaikan UI Anda dengan ukuran jendela (lihat Panduan untuk aplikasi UWP.).

Namun, jika Anda memiliki skenario di mana tidak dapat ditolak untuk mendeteksi keluarga perangkat, maka Anda dapat melakukannya. Dalam contoh ini, kami menggunakan kelas AnalyticsVersionInfo untuk menavigasi ke halaman yang disesuaikan untuk keluarga perangkat seluler jika sesuai, dan kami memastikan untuk kembali ke halaman default jika tidak.

   if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile")
        rootFrame.Navigate(typeof(MainPageMobile), e.Arguments);
    else
        rootFrame.Navigate(typeof(MainPage), e.Arguments);

Aplikasi Anda juga dapat menentukan keluarga perangkat yang dijalankannya dari faktor pemilihan sumber daya yang berlaku. Contoh di bawah ini menunjukkan cara melakukan ini secara imperatif, dan topik ResourceContext.QualifierValues menjelaskan kasus penggunaan yang lebih umum untuk kelas dalam memuat sumber daya khusus keluarga perangkat berdasarkan faktor keluarga perangkat.

var qualifiers = Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().QualifierValues;
string deviceFamilyName;
bool isDeviceFamilyNameKnown = qualifiers.TryGetValue("DeviceFamily", out deviceFamilyName);

Selain itu, lihat Kompilasi bersyarkat, dan kode adaptif.

Status perangkat

Aplikasi Windows Phone Silverlight dapat menggunakan kelas Microsoft.Phone.Info.DeviceStatus untuk mendapatkan info tentang perangkat tempat aplikasi berjalan. Meskipun tidak ada UWP langsung yang setara untuk namespace Microsoft.Phone.Info , berikut adalah beberapa properti dan peristiwa yang dapat Anda gunakan di aplikasi UWP sebagai pengganti panggilan ke anggota kelas DeviceStatus .

Windows Phone Silverlight UWP
Properti ApplicationCurrentMemoryUsage dan ApplicationCurrentMemoryUsageLimit Properti MemoryManager.AppMemoryUsage dan AppMemoryUsageLimit
Properti ApplicationPeakMemoryUsage Gunakan alat pembuatan profil memori di Visual Studio. Untuk informasi selengkapnya, lihat Mengukur penggunaan memori.
Properti DeviceFirmwareVersion Properti EasClientDeviceInformation.SystemFirmwareVersion (hanya keluarga perangkat desktop)
Properti DeviceHardwareVersion Properti EasClientDeviceInformation.SystemHardwareVersion (hanya keluarga perangkat desktop)
Properti DeviceManufacturer Properti EasClientDeviceInformation.SystemManufacturer (hanya keluarga perangkat desktop)
Properti DeviceName Properti EasClientDeviceInformation.SystemProductName (hanya keluarga perangkat desktop)
Properti DeviceTotalMemory Tidak ada yang setara
Properti IsKeyboardDeployed Tidak ada yang setara. Properti ini menyediakan informasi tentang keyboard perangkat keras untuk perangkat seluler, yang tidak umum digunakan.
Properti IsKeyboardPresent Tidak ada yang setara. Properti ini menyediakan informasi tentang keyboard perangkat keras untuk perangkat seluler, yang tidak umum digunakan.
Peristiwa KeyboardDeployedChanged Tidak ada yang setara. Properti ini menyediakan informasi tentang keyboard perangkat keras untuk perangkat seluler, yang tidak umum digunakan.
Properti PowerSource Tidak ada yang setara
Peristiwa PowerSourceChanged Tangani acara RemainingChargePercentChanged (hanya keluarga perangkat seluler). Peristiwa dinaikkan ketika nilai properti RemainingChargePercent (hanya keluarga perangkat seluler) berkurang sebesar 1%.

Lokasi

Saat aplikasi yang mendeklarasikan kemampuan Lokasi dalam manifes paket aplikasinya berjalan pada Windows 10, sistem akan meminta persetujuan kepada pengguna akhir. Jadi, jika aplikasi Anda menampilkan permintaan persetujuan kustomnya sendiri, atau jika menyediakan tombol on-off, maka Anda akan ingin menghapusnya sehingga pengguna akhir hanya diminta sekali.

Orientasi

Aplikasi UWP yang setara dengan properti PhoneApplicationPage.SupportedOrientations dan Orientation adalah elemen uap:InitialRotationPreference dalam manifes paket aplikasi. Pilih tab Aplikasi jika belum dipilih dan pilih satu atau beberapa kotak centang di bawah Rotasi yang didukung untuk merekam preferensi Anda.

Namun, Anda dianjurkan untuk merancang UI aplikasi UWP Anda agar terlihat hebat terlepas dari orientasi perangkat dan ukuran layar. Ada lebih banyak tentang itu di Porting untuk faktor formulir dan pengalaman pengguna, yang merupakan topik setelah berikutnya.

Topik berikutnya adalah Porting bisnis dan lapisan data.