@ আলিস্টায়ার এই উত্তরে নির্দেশ করেছেন যে কখনও কখনও ব্যবহারকারীরা অ্যাপটি খোলার পরে ব্রাউজারে ফিরে আসবে। এই উত্তরের একজন মন্তব্যকারী ইঙ্গিত করেছিলেন যে ব্যবহৃত সময়ের মানগুলি আইওএস সংস্করণের উপর নির্ভর করে পরিবর্তন করতে হয়েছিল। যখন আমাদের দলটিকে এটির মোকাবেলা করতে হয়েছিল, আমরা দেখতে পেলাম যে প্রাথমিক সময়সীমা নির্ধারণের জন্য এবং আমরা ব্রাউজারে ফিরে এসেছি কিনা তা জানানোর জন্য সময় মানগুলি সুর করতে হবে এবং প্রায়শই সমস্ত ব্যবহারকারী এবং ডিভাইসের জন্য কাজ করে না।
আমরা ব্রাউজারে ফিরে এসেছি কিনা তা নির্ধারণের জন্য একটি স্বেচ্ছাসেবী সময় পার্থক্য থ্রেশহোল্ড ব্যবহার না করে "পেজহাইড" এবং "পৃষ্ঠা প্রদর্শন" ইভেন্টগুলি সনাক্ত করার জন্য এটি বোধগম্য হয়েছিল।
যা চলছে তা নির্ণয় করতে আমি নিম্নলিখিত ওয়েব পৃষ্ঠাটি তৈরি করেছি। এটি ইভেন্টগুলি প্রকাশিত হওয়ার সাথে সাথে এইচটিএমএল ডায়াগোনস্টিক যুক্ত করে, মূলত কারণ কনসোল লগিং, সতর্কতা, বা ওয়েব পরিদর্শক, jsfiddle.net ইত্যাদির মতো কৌশলগুলি ব্যবহার করার ফলে এই কাজের প্রবাহে তাদের ত্রুটি রয়েছে। সময়সীমা ব্যবহারের পরিবর্তে, জাভাস্ক্রিপ্ট "পেজহাইড" এবং "পৃষ্ঠাগুলি" ইভেন্টগুলির সংখ্যা গুনেছে তা দেখার জন্য। এবং আমি দেখতে পেয়েছি যে সর্বাধিক শক্তিশালী কৌশলটি ছিল 1000 এর প্রাথমিক টাইমআউট (25, 50, বা 100 এর দ্বারা রিপোর্ট করা / অন্যদের পরামর্শ দেওয়া) এর পরিবর্তে ব্যবহার করা।
এটি একটি স্থানীয় সার্ভারে দেওয়া যেতে পারে, যেমন python -m SimpleHTTPServer
এবং আইওএস সাফারিতে দেখা যায়।
এটি খেলতে, "ইনস্টলড অ্যাপ্লিকেশনটি খুলুন" বা "অ্যাপ্লিকেশন ইনস্টল করা নেই" লিঙ্কগুলি টিপুন। এই লিঙ্কগুলির যথাক্রমে মানচিত্র অ্যাপ্লিকেশন বা অ্যাপ স্টোরটি খোলার কারণ হতে হবে। তারপরে আপনি ইভেন্টগুলির ক্রম এবং সময় দেখতে সাফারিটিতে ফিরে যেতে পারেন।
(দ্রষ্টব্য: এটি কেবল সাফারির জন্য কাজ করবে other অন্যান্য ব্রাউজারগুলির জন্য (ক্রোমের মতো) আপনাকে পৃষ্ঠা হাইড / শো-সমতুল্য ইভেন্টগুলির জন্য হ্যান্ডলার ইনস্টল করতে হবে)।
আপডেট: @ মিক্কো মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, আমরা যে পৃষ্ঠাগুলি / পেজহাইড ইভেন্টগুলি ব্যবহার করছি তা স্পষ্টতই আর iOS8 এ সমর্থিত নয়।
<html>
<head>
</head>
<body>
<a href="maps://" onclick="clickHandler()">Open an installed app</a>
<br/><br/>
<a href="xmapsx://" onclick="clickHandler()">App not installed</a>
<br/>
<script>
var hideShowCount = 0 ;
window.addEventListener("pagehide", function() {
hideShowCount++ ;
showEventTime('pagehide') ;
});
window.addEventListener("pageshow", function() {
hideShowCount++ ;
showEventTime('pageshow') ;
});
function clickHandler(){
var hideShowCountAtClick = hideShowCount ;
showEventTime('click') ;
setTimeout(function () {
showEventTime('timeout function '+(hideShowCount-hideShowCountAtClick)+' hide/show events') ;
if (hideShowCount == hideShowCountAtClick){
// app is not installed, go to App Store
window.location = 'http://itunes.apple.com/app' ;
}
}, 1000);
}
function currentTime()
{
return Date.now()/1000 ;
}
function showEventTime(event){
var time = currentTime() ;
document.body.appendChild(document.createElement('br'));
document.body.appendChild(document.createTextNode(time+' '+event));
}
</script>
</body>
</html>