ترفند Bluesky برای لوگو روی اسکرینشات
خلاصهٔ کاملتر
تو یه پست شخصی، نویسنده تعریف میکنه از یه پست Bluesky اسکرینشات گرفته و دیده گوشهی راست عکس، لوگوی Bluesky نشسته؛ در حالی که موقع استفاده از خود اپ همونجا دکمهی Follow بوده. اولش فکر کرده شاید اپ فشردهشدن دکمههای اسکرینشات رو تشخیص میده و لحظهی آخر جاشونو عوض میکنه.
چون کد اپ Bluesky در دسترسه، رفته سراغش و جوابو تو فایلی پیدا کرده به اسم GrowthHack.tsx که ژانویه ۲۰۲۶ اضافه شده. خود اون فایل فقط از یه پکیج به اسم expo-privacy-sensitive استفاده میکنه. کاری که پکیج انجام میده اینه که یه UITextField با isSecureTextEntry روشن میسازه و محتوای واقعی، یعنی همون دکمه، رو داخل layer اون فیلد رندر میکنه.
iOS موقع گرفتن اسکرینشات لایهی چنین فیلدی رو خالی میکنه تا رمز و محتوای حساس تو عکس نیفته، و دقیقاً همین باعث میشه لوگویی که پشتش بوده خودشو نشون بده. روی بقیهی پلتفرمها پکیج محتوا رو بدون ماسک رندر میکنه. نویسنده حدس میزنه موقع جابهجایی بین اپها این اتفاق نمیافته چون iOS خودش اول یه اسنپشات میگیره و دیگه فیلد زندهای نیست که واکنش نشون بده.
به گفتهٔ نویسنده، بیشتر آدمهایی که تو PR شماره ۹۶۳۷ نظر داده بودن از این کار خوششون نیومده و آخرش بحث قفل شده، هرچند خودش میگه به نظرش بامزهست. ترفندش هم تازه نیست: تلگرام برای چتهای «محرمانه» و سیگنال هم برای جلوگیری از اسکرینشات سالهاست همینو پیاده کردن، برای همین بعیده اپل به این زودی جلوشو بگیره.
نکات کلیدی:
- کد این قابلیت تو فایل GrowthHack.tsx اپ Bluesky و از ژانویه ۲۰۲۶ اضافه شده
- ترفند روی UITextField با isSecureTextEntry سواره و دکمه داخل layer همون فیلد رندر میشه
- iOS موقع اسکرینشات اون لایه رو خالی میکنه، پس لوگوی پشتش دیده میشه
- روی پلتفرمهای غیر iOS پکیج expo-privacy-sensitive محتوا رو بدون ماسک نشون میده
- تلگرام و سیگنال از سالها پیش از همین API برای محتوای حساس استفاده میکنن




