نحوه استفاده از افزونههای سفارشی SQLite در Capacitor
SQLite استاندارد برای اکثر کارها مناسب است. اما گاهی اوقات به امکانات بیشتری نیاز دارید.
ممکن است برای زبانهای خاص به یک توکنایزر (tokenizer) سفارشی نیاز داشته باشید. یا شاید به توابع ریاضی سفارشی یا پردازش متن خاص نیاز پیدا کنید. به این موارد، افزونههای قابل بارگذاری (loadable extensions) گفته میشود.
پلاگین Capacitor SQLite از این قابلیتها در Android و iOS پشتیبانی میکند.
چرا از افزونهها استفاده کنیم؟
- توکنایزرهای سفارشی FTS5: کنترل نحوه تقسیم متن برای جستجو.
- توابع SQL سفارشی: اجرای منطقهای پیچیده در نزدیکی دادهها.
پیادهسازی در هر پلتفرم متفاوت است.
Android
SQLite سیستم Android مستقیماً از بارگذاری افزونهها پشتیبانی نمیکند. شما باید از بکاِند requery استفاده کنید.
- گزینه requery را در فایل
variables.gradleخود فعال کنید. - مخزن JitPack را به فایل
build.gradleخود اضافه کنید. - کد C خود را برای هر معماری CPU به کتابخانههای بومی (فایلهای
.so) کامپایل کنید. - این فایلها را در پوشه
jniLibsقرار دهید. - هنگام باز کردن پایگاه داده، از گزینه
androidExtensionsاستفاده کنید.
iOS
اپلیکیشنهای iOS نمیتوانند کتابخانههای پویا (dynamic libraries) را در زمان اجرا بارگذاری کنند. شما باید افزونه خود را به صورت استاتیک (statically) لینک کنید.
- فایل منبع C خود را به پروژه Xcode اضافه کنید.
- پرچم کامپایلر
-DSQLITE_COREرا برای آن فایل تنظیم کنید. - تابع
initرا درbridging headerخود تعریف کنید. - افزونه را در
AppDelegateبا استفاده ازsqlite3_auto_extensionثبت کنید.
کد C افزونه شما ثابت میماند. فقط مراحل ساخت و ثبت تغییر میکنند.
پس از بارگذاری، افزونه سفارشی شما دقیقاً مانند یک ویژگی داخلی SQLite عمل میکند. میتوانید بلافاصله از توکنایزر یا تابع جدید خود در دستورات SQL استفاده کنید.
افزونههای سفارشی قدرت کد بومی (native code) را در پایگاه داده موبایل شما فراهم میکنند.
منبع