UniApp ialah rangka kerja pembangunan merentas platform yang boleh membangunkan aplikasi iOS, Android dan Web dalam satu pangkalan kod. Kaedah panggilan dan mendapatkan nilai pulangan adalah keperluan biasa dalam UniApp. Artikel ini akan memperkenalkan cara memanggil kaedah dalam UniApp dan mendapatkan nilai pulangan.
Kaedah panggilan dalam UniApp
Proses kaedah panggilan dalam UniApp boleh dibahagikan kepada dua langkah:
Berikut ialah contoh mudah yang menunjukkan cara memanggil kaedah Native dalam UniApp:
uni.invokeMethod("testPlugin", "testMethod", "args", function(res){ console.log(res); })
uni.invokeMethod(plugin, method, args, callback)
digunakan untuk memanggil kaedah Asli. Parameter plugin
merujuk kepada ID pemalam Native, seperti "testPlugin". method
Parameter merujuk kepada nama kaedah Native, seperti "testMethod". args
Parameter merujuk kepada parameter yang diperlukan oleh kaedah, seperti "args". Parameter callback
merujuk kepada fungsi panggil balik selepas kaedah dilaksanakan, di mana parameter res mewakili nilai pulangan. public class TestPlugin implements IModule { @JSMethod(uiThread = false) public void testMethod(JSCallback callback, String args){ String result = "Hello " + args; callback.invoke(result); } }
TestPlugin
dalam Java untuk melaksanakan pemalam Native. Anotasi @JSMethod(uiThread = false)
menunjukkan bahawa kaedah ini akan dilaksanakan dalam urutan bukan UI. JSCallback
ialah antara muka panggil balik yang digunakan untuk mengembalikan hasil dalam JavaScript. Kaedah invoke
digunakan untuk mengembalikan hasil kepada JavaScript. Dapatkan nilai pulangan kaedah panggilan
Untuk mendapatkan nilai pulangan kaedah panggilan, kita perlu menggunakan fungsi panggil balik dalam kod Native untuk mengembalikan nilai Parameter dalam fungsi panggil balik ialah nilai Pulangan kaedah. Dalam kod JavaScript, kita perlu menggunakan nilai pulangan dalam fungsi panggil balik untuk melaksanakan pemprosesan yang sepadan.
Berikut ialah contoh kod yang memperoleh nilai pulangan kaedah panggilan:
export function testMethod(args){ return new Promise((resolve, reject) => { uni.invokeMethod("testPlugin", "testMethod", args, function(res){ resolve(res); }) }) }
resolve
mewakili fungsi pemprosesan yang mengembalikan hasil tak segerak. public class TestPlugin implements IModule { @JSMethod(uiThread = false) public void testMethod(JSCallback callback, String args){ String result = "Hello " + args; callback.invoke(result); } }
invoke
untuk pulangkan hasilnya. testMethod('world') .then(res => { console.log(res); }) .catch(error => { console.error(error); });
then
Promise untuk mendapatkan pulangan nilai dan diproses dalam fungsi panggil balik. catch
Promise untuk menangkap ralat dan mengeluarkannya ke konsol. Ringkasan
Kaedah panggilan dan mendapatkan nilai pulangan adalah keperluan biasa dalam UniApp. Walaupun UniApp membenarkan kami menggunakan fungsi panggil balik untuk mendapatkan hasil kaedah panggilan, menggunakan Promise dan async/wait boleh menjadikan kod lebih ringkas dan boleh dibaca. Untuk mendapatkan nilai pulangan kaedah panggilan, kami boleh menggunakan Promise dalam kod JavaScript untuk mengendalikan hasil tak segerak dan menggunakan fungsi panggil balik dalam kod Asli untuk mengembalikan hasil.
Atas ialah kandungan terperinci Cara memanggil kaedah dalam UniApp dan dapatkan nilai pulangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!