Bagikan melalui


Porting Windows Runtime 8.x 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)

Untuk aplikasi Universal 8.1, ada "jendela debounce" dua detik antara aplikasi menjadi tidak aktif dan sistem yang meningkatkan peristiwa penangguhan. Menggunakan jendela debounce ini sebagai waktu tambahan untuk menangguhkan status tidak aman, dan untuk aplikasi Platform Windows Universal (UWP), tidak ada jendela debounce sama sekali; peristiwa penangguhan dinaikkan segera setelah aplikasi menjadi tidak aktif.

Untuk informasi selengkapnya, lihat Siklus hidup aplikasi.

Audio latar belakang

Untuk properti MediaElement.AudioCategory, ForegroundOnlyMedia dan BackgroundCapableMedia tidak digunakan lagi untuk aplikasi Windows 10. Gunakan model aplikasi Windows Phone Store sebagai gantinya. Untuk informasi selengkapnya, lihat Audio Latar Belakang.

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.

Jika Anda memiliki kode di aplikasi Universal 8.1 yang mendeteksi sistem operasi apa yang dijalankannya, maka Anda mungkin perlu mengubahnya tergantung pada alasan logika. Jika aplikasi meneruskan nilai, dan tidak bertindak di atasnya, maka Anda mungkin ingin terus mengumpulkan info sistem operasi.

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 Piksel efektif, 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.

Lokasi

Saat aplikasi yang mendeklarasikan kemampuan Lokasi dalam manifes paket aplikasinya berjalan pada Windows 10, sistem akan meminta persetujuan kepada pengguna akhir. Ini benar apakah aplikasi tersebut adalah aplikasi Windows Phone Store atau aplikasi Windows 10. 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.