كثيرا منا يتم اضافته في مجموعات الدردشة عبر تطبيق الواتساب دون رغبتنا ويبحث الكثير عن طريقة سهلة لمغادرة مجموعة الواتساب دون إحراج من الأصدقاء أو الأقارب.
ويظهر عند الخروج من المجموعة رسالة للجميع “تمت المغادرة الشخص”، لذلك أطلق تطبيق الواتساب ميزة جديدة تسمى بالمغادرة الصامتة، ليتمكن المشاركين في المجموعة من الخروج دون ظهور أي إشعارات لدى بقية أفراد المجموعة.
ميزة واتساب الجديدة
كشف تطبيق الواتساب عن ميزة المغادرة الصامتة خلال شهر مايو الماضي ومنذ أيام تم تفعيلها رسميا، حيث تساعد ميزة المغادرة الصامتة فى تمكين المستخدمين من مغادرة الجروبات، دون أن يتم إرسال إشعار لباقي أفراد المجموعة بأنه تمت مغادرة المجموعة.
طريقة تفعيل ميزة تطبيق الواتساب الجديدة 2023
تحديث التطبيق وبعد اختيار مغادرة المجموعة يظهر إشعار المغادرة للأفراد المشرفين على المجموعة ولن يظهر لباقي المستخدمين.
وعمل تطبيق الواتساب على تحديث الميزة حتى تمكن المستخدم من مغادرة المجموعة دون إرسال إشعار المغادرة للمشرفين، وذلك من خلال تعطيل خاصية Read Receipts من قائمة الخصوصيات، وذلك من خلال الدخول إلى إعدادات التطبيق.
وتمكن الميزة الجديدة المستخدمين من إمكانية حظر بعض الأرقام من إضافتك إلى المجموعات، من خلال خيار الخصوصية ثم الدخول إلى Groups، والتى ستظهر لك ملاحظة من يستطيع إضافتك إلى المجموعات، ثم يتم اختيار الشخص أو جهات الاتصال أو جهات الاتصال باستثناء، كما يمكن أيضا إضافة الأسماء الغير مرغوب بها.
تعديل الرسائل في واتساب
أعلن تطبيق الواتساب عن إمكانية المستخدمين من تعديل الرسائل النصية بعد إرسالها، وتعمل هذه الميزة على تعديل الأخطاء الإملائية بدلا من كتابة الرسالة مرة أخرى، ولكن تكون هذه الميزة متاحة لمدة 15 دقيقة فقط بعد إرسال الرسالة النصية.
وبهذه الطريقة يستطيع كل فرد في المجموعة أن يغادر دون معرفة المشرف على المجموعة أو أعضاء المجموعة وكانت واتساب أتاحت إضافة اكثر من 500 فرد داخل المجموعة الواحدة خلال الفترة الاخيرة ومن المقرر أن تطلق واتساب العديد من المميزات الجديدة خلال الفترة القادمة من بينها إمكانية تعديل الرسائل في واتساب بعد أرسلها فقط لمدة 15 دقيقة كما يحدث في تطبيقات واتساب المسروقة
replaceOembeds();
function replaceOembeds() {
var allEmbeds = document.getElementsByTagName(“OEMBED”);
while (allEmbeds.length != 0) {
replaceOembedWithHtml(allEmbeds[0], extractLinkFromOembed(allEmbeds[0]));
allEmbeds = document.getElementsByTagName(“OEMBED”);
}
runYoutubeLazyLoad();
loadfbApi();
}
function replaceOembedWithHtml(element, sourceData) {
if (sourceData.source.toLowerCase() === “youtube”) {
var html=”
‘;
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === “instagram”) {
var html=”
‘;
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === “twitter”) {
var html=”
‘;
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === “facebook”) {
var html=”
‘
replaceElementWithHtml(element, html);
} else {
replaceElementWithHtml(element, “”);
}
}
function extractLinkFromOembed(element) {
return getUrlSource(element.getAttribute(“url”));
}
function getUrlSource(url) {
var ytRegex = /http(?:s?)://(?:www.)?youtu(?:be.com/watch?v=|.be/)([w-_]*)(&(amp;)?[w?=]*)?/;
var instaRegex = /(https?://www.)?instagram.com(/p/(w+)/?)/;
var twitterRegex = /twitter.com/.*/status(?:es)?/([^/?]+)/;
var fbRegex = /^https?://www.facebook.com.*/(video(s)?|watch|story|posts)(.php?|/).+$/;
if (ytRegex.test(url)) {
return {
source: “Youtube”,
url: url,
id: ytRegex.exec(url)[1]
};
}
if (instaRegex.test(url)) {
return {
source: “Instagram”,
url: url,
id: instaRegex.exec(url)[3]
};
}
if (twitterRegex.test(url)) {
return {
source: “Twitter”,
url: url,
id: twitterRegex.exec(url)[1]
};
}
if (fbRegex.test(url)) {
return {
source: “Facebook”,
url: url,
id: fbRegex.exec(url)[1]
};
}
return {
source: “Unknown”,
url: url,
id: “”
};
}
function replaceElementWithHtml(element, html) {
var str = html;
var Obj = element; //any element to be fully replaced
if (Obj.outerHTML) { //if outerHTML is supported
Obj.outerHTML = str; ///it’s simple replacement of whole element with contents of str var
} else { //if outerHTML is not supported, there is a weird but crossbrowsered trick
var tmpObj = document.createElement(“div”);
tmpObj.innerHTML = ‘‘;
ObjParent = Obj.parentNode; //Okey, element should be parented
ObjParent.replaceChild(tmpObj, Obj); //here we placing our temporary data instead of our target, so we can find it then and replace it into whatever we want to replace to
ObjParent.innerHTML = ObjParent.innerHTML.replace(‘
‘, str);
}
}
function loadfbApi() {
var js = document.createElement(‘script’);
js.src=”https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2″;
document.body.appendChild(js);
}
function runYoutubeLazyLoad() {
/// youtube lazyload
var youtube = document.querySelectorAll(“.youtube”);
for (var i = 0; i < youtube.length; i++) {
var source = "https://img.youtube.com/vi/" + youtube[i].dataset.embed +
"/0.jpg";
var image = new Image();
image.src = "https://www.elfagr.org/themes/fagr/assets/images/no.jpg";
image.classList.add('lazyload');
image.setAttribute("data-src", source);
image.setAttribute("alt", "youtube");
image.addEventListener("load", function () {
youtube[i].appendChild(image);
}(i));
youtube[i].addEventListener("click", function () {
var iframe = document.createElement("iframe");
iframe.setAttribute("frameborder", "0");
iframe.setAttribute("allowfullscreen", "");
iframe.setAttribute("src", "https://www.youtube.com/embed/" + this.dataset
.embed + "?rel=0&showinfo=0&autoplay=1");
this.innerHTML = "";
this.appendChild(iframe);
});
};
}