ইউটিউব এবং মানচিত্রের মতো আইফোন অ্যাপ্লিকেশনগুলির জন্য কি কোনও HTTP + ডোমেন-ভিত্তিক URL স্কিমটি নিবন্ধিত করা সম্ভব?


223

আমি যখনই অ্যাপ্লিকেশনটি ফোনে ইনস্টল করা হয় এবং মোবাইল সাফারি না হয় সে ক্ষেত্রে আমার অ্যাপ্লিকেশনটি দিয়ে আইওএসটি আমার ডোমেন থেকে (যেমন: http://martijnthe.nl ) খুলতে চাই open

আমি পড়েছি এটির জন্য একটি অনন্য প্রোটোকল প্রত্যয় তৈরি করা এবং তথ্য.প্লেস্টে এটি নিবন্ধভুক্ত করা সম্ভব, তবে অ্যাপ্লিকেশন ইনস্টল না থাকলে মোবাইল সাফারি একটি ত্রুটি দেবে।

একটি workaround কি হবে?

একটি ধারণা:

1) কোনও ডেস্কটপ ব্রাউজারে খোলা এবং ব্রাউজারের মাধ্যমে পরিষেবাটি সরবরাহ করে এমন http: // URL গুলি ব্যবহার করুন Use

২) ব্যবহারকারী-এজেন্টটি পরীক্ষা করুন এবং এটি মোবাইল সাফারি এর ক্ষেত্রে আইফোন অ্যাপ্লিকেশনটি খুলতে একটি মাইপ্রোটোকল: // ইউআরএল খুলুন এবং চেষ্টা ব্যর্থ হলে অ্যাপটি ডাউনলোড করতে মোবাইল আইটিউনস খুলুন

নিশ্চিত না যে এটি কাজ করবে ... পরামর্শ? ধন্যবাদ!


4
এনওয়াইসি সাবওয়েতে বোয়িংগোর ওয়াইফাই রয়েছে যা আপনি ওয়াইফাইয়ে ফ্রি অ্যাক্সেস সরবরাহ করেন যদি আপনি তাদের প্রস্তাবিত অ্যাপ্লিকেশন ডাউনলোড করেন। আপনি এটি ডাউনলোড করার পরে, আপনি সাফারিটিতে ফিরে যান এবং ব্রাউজারটি এটি ইনস্টল করা আছে কিনা তা সনাক্ত করে এবং তারপরে আপনাকে অ্যাক্সেস দেওয়ার অনুমতি দেয়। কোন ধারণা কীভাবে এটি করা হচ্ছে?
টমিজি

2
ইউনিভার্সাল লিঙ্কগুলি এখন কোনও ত্রুটি বার্তা ছাড়াই এই ব্যবহারের ক্ষেত্রে সমর্থন করবে। আপনার ডোমেন এবং অ্যাপ্লিকেশনটি কীভাবে কনফিগার করবেন তা এখানে রয়েছে: blog.branch.io/…
অ্যালেক্স অস্টিন

উত্তর:


243

আমি মনে করি এটি করার সর্বনিম্ন অনুপ্রবেশমূলক উপায়টি নিম্নরূপ:

  1. ব্যবহারকারী-এজেন্ট কোনও আইফোন / আইপড টাচের কিনা তা পরীক্ষা করুন
  2. একটি জন্য পরীক্ষা করুন appInstalled কুকি
  3. কুকি বিদ্যমান এবং সত্য, সেট হিসাবে সেট করা থাকে window.locationকরার your-uri://(অথবা পুনর্নির্দেশ সার্ভার প্রান্তের না)
  4. যদি কুকিটির অস্তিত্ব না থাকে তবে "আপনি কি জানেন যে আপনার সাইটের নামের একটি আইফোনের অ্যাপ্লিকেশন রয়েছে?" "হ্যাঁ, আমি এটি ইতিমধ্যে পেয়েছি", "না, তবে আমি এটি চেষ্টা করতে পছন্দ করব", এবং "আমাকে একা ছেড়ে দিন" বোতামটি দিয়ে মডেলাল।
    1. "হ্যাঁ" বোতামটি কুকিকে সত্যে সেট করে এবং এতে পুনর্নির্দেশ করে your-uri://
    2. "নাপ" বোতামটি " http://itunes.com/apps/yourappname " এ পুনঃনির্দেশ করে যা ডিভাইসে অ্যাপ স্টোরটি খুলবে
    3. "আমাকে একা ছেড়ে দিন" বোতামটি কুকিকে মিথ্যাতে সেট করে এবং মডেলটি বন্ধ করে দেয়

আমি অন্য যে বিকল্পটি নিয়ে খেলেছি তা কিন্তু জাভাস্ক্রিপ্টে নিম্নলিখিত বিষয়গুলি করার জন্য কিছুটা ক্লানকি পাওয়া গেছে:

setTimeout(function() {
  window.location = "http://itunes.com/apps/yourappname";
}, 25);

// If "custom-uri://" is registered the app will launch immediately and your
// timer won't fire. If it's not set, you'll get an ugly "Cannot Open Page"
// dialogue prior to the App Store application launching
window.location = "custom-uri://";

16
দুর্দান্ত সমাধান। আপনার ফলব্যাক অন্য অ্যাপ্লিকেশনে হয়, তাহলে এটি লোড করা হবে অনতিবিলম্বে ত্রুটি প্রদর্শন ছাড়াই। সুতরাং পরিবর্তে ফিরে পতিত হওয়ার itunes.com //phobos.apple.com / ... পপআপ ত্রুটি এড়াতে: ... ব্যবহার itms!
জেবি।

47
সমস্যা : যখন window.location="custom-uri://সফল হয়, ফলব্যাকের সময়সীমাটি মারা যায় না। যখন ব্যবহারকারী আপনার অ্যাপ্লিকেশন থেকে ব্রাউজারে ফিরে আসে, টাইমারটি এখনও রয়েছে এবং অ্যাপ স্টোর লিঙ্কটি চালু করবে। এটি ব্যবহারকারীর দুর্বল অভিজ্ঞতা।
জোজো

5
দেখে মনে হচ্ছে কুকিজগুলি # ios6 এ স্যান্ডবক্সযুক্ত রয়েছে যাতে আপনি অন্য কোনও অ্যাপ্লিকেশন দ্বারা সেট কুকিতে অ্যাক্সেস করতে পারবেন না। (উদাহরণস্বরূপ অ্যাপ্লিকেশন
ওয়েবইউআই

2
ব্যবহারকারী যখন ব্রাউজারে ফিরে আসে তখন আসল সময়সামগ্রী রোধের জন্য কোনও উপায় খুঁজে পাওয়া যায়? (
উদ্বেগিত

2
জোজো যে সমস্যাটি উল্লেখ করেছে তা সমাধান করার জন্য, ব্যবহারকারী লিঙ্কটি ক্লিক করার পরে "" অনেক সময় "কেটে না গেলে কেবল টাইমআউটে কোড চালান। : এই সমাধান দেখুন stackoverflow.com/a/14751543/533420
kkara

95

আপনার ফ্যালব্যাকটি অন্য অ্যাপলিংক না হওয়া পর্যন্ত এটি জাভাস্ক্রিপ্টে করা বেশ সম্ভব। তৈরী হচ্ছেনাথনের পরামর্শের :

<html>
  <head>
    <meta name="viewport" content="width=device-width" />
  </head>
  <body>

    <h2><a id="applink1" href="fb://profile/116201417">open facebook with fallback to appstore</a></h2>
    <h2><a id="applink2" href="unknown://nowhere">open unknown with fallback to appstore</a></h2>
    <p><i>Only works on iPhone!</i></p>    

  <script type="text/javascript">

// To avoid the "protocol not supported" alert, fail must open another app.
var appstorefail = "itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&uo=6";

function applink(fail){
    return function(){
        var clickedAt = +new Date;
        // During tests on 3g/3gs this timeout fires immediately if less than 500ms.
        setTimeout(function(){
            // To avoid failing on return to MobileSafari, ensure freshness!
            if (+new Date - clickedAt < 2000){
                window.location = fail;
            }
        }, 500);    
    };
}

document.getElementById("applink1").onclick = applink(appstorefail);
document.getElementById("applink2").onclick = applink(appstorefail);

</script>
</body>
</html>

এখানে একটি লাইভ ডেমো দেখুন


7
লির সাথে একমত হোন, এটি আরও সহজ সমাধান হিসাবে মনে হচ্ছে - যদিও আমি এখনও সাফারি থেকে ত্রুটি বার্তাটি পাই তবে যদি অ্যাপটির অস্তিত্ব থাকে না এবং এটি অ্যাপ স্টোরে পুনঃনির্দেশ করে।
জন

2
আমি এই সমাধানটি অ্যান্ড্রয়েড এবং আইওএস উভয়ের জন্যই ব্যবহার করেছি। আমি টাইমআউট মানটি 500 থেকে 100 এ পরিবর্তন করলে আমি খুঁজে পেয়েছি আমি আইওএসে "পৃষ্ঠা খুলতে পারি না" পপআপ ডায়ালগটি পাই না। আমি আরও জানতে পেরেছি যে অ্যান্ড্রয়েডের জন্য টাইমআউট 50 হওয়া দরকার
রসিনি

14
"এটিএমএস:" এর পরিবর্তে "আইটিএমএস-অ্যাপস:" ব্যবহার করে 1 টি পুনর্নির্দেশের সঞ্চয় হয় এবং অ্যাপস্টোরগুলিতে সরাসরি অ্যাপ পৃষ্ঠা খোলে।
জার্মান লেটোরে


9
অ্যাপটি ইনস্টল না করা থাকলে এবং অ্যাপ স্টোরটিতে পুনর্নির্দেশের আগে সাফারি থেকে "পৃষ্ঠা খুলতে পারে না" ত্রুটি বার্তাটি কীভাবে এড়াতে হবে কেউ জানেন?
ডেভিডক

26

আইওএস 6 ডিভাইসের জন্য একটি বিকল্প রয়েছে: স্মার্ট অ্যাপ্লিকেশন ব্যানার সহ অ্যাপ্লিকেশন প্রচার করা


12
দুঃখের বিষয় স্মার্ট অ্যাপ্লিকেশন ব্যানার কেবলমাত্র মোবাইল সাফারিতে সমর্থিত, ইউআইউইউবভিউ কম্পোনেন্টে নয়। উদাহরণস্বরূপ, যদি আপনার সাইটটি কোনও টুইটার ক্লায়েন্টের অভ্যন্তরে প্রদর্শিত হয় তবে এটি প্রদর্শিত হবে না।
অলিভিয়ার এমবল্ট

24

আমি দেখতে পেয়েছি যে নির্বাচিত উত্তরটি ব্রাউজার অ্যাপ্লিকেশনগুলির জন্য কাজ করে তবে আমি ব্রাউজারের অ অ্যাপ্লিকেশনগুলিতে কোড প্রয়োগ করে যা একটি প্রয়োগ করে UIWebView

আমার সমস্যাটি ছিল টুইটার অ্যাপ্লিকেশনটিতে থাকা কোনও ব্যবহারকারী এমন কোনও লিঙ্কে ক্লিক করবেন যা টুইটার অ্যাপের মাধ্যমে তাদের আমার সাইটে নিয়ে যাবে UIWebView। তারপরে যখন তারা আমার সাইট থেকে একটি বোতাম ক্লিক করেছে টুইটার অভিনব হওয়ার চেষ্টা করে এবং window.locationসাইটটি যদি অ্যাক্সেসযোগ্য হয় কেবল তখনই এটি সম্পন্ন করে । সুতরাং যা ঘটে তা হ'ল একUIAlertView পপ আপ বলার বিষয়ে আপনি কী নিশ্চিত যে আপনি চালিয়ে যেতে চান এবং তারপরে তত্ক্ষণাত দ্বিতীয় পপআপ ছাড়াই অ্যাপ স্টোরটিতে পুনঃনির্দেশ করুন।

আমার সমাধানে iframes জড়িত। এটি এড়ানোUIAlertView একটি সহজ এবং মার্জিত ব্যবহারকারীর অভিজ্ঞতার অনুমতি দিয়ে উপস্থাপিত হওয়া ।

jQuery এর

var redirect = function (location) {
    $('body').append($('<iframe></iframe>').attr('src', location).css({
        width: 1,
        height: 1,
        position: 'absolute',
        top: 0,
        left: 0
    }));
};

setTimeout(function () {
    redirect('http://itunes.apple.com/app/id');
}, 25);

redirect('custom-uri://');

জাভাস্ক্রিপ্ট

var redirect = function (location) {
    var iframe = document.createElement('iframe');
    iframe.setAttribute('src', location);
    iframe.setAttribute('width', '1px');
    iframe.setAttribute('height', '1px');
    iframe.setAttribute('position', 'absolute');
    iframe.setAttribute('top', '0');
    iframe.setAttribute('left', '0');
    document.documentElement.appendChild(iframe);
    iframe.parentNode.removeChild(iframe);
    iframe = null;
};

setTimeout(function () {
    redirect('http://itunes.apple.com/app/id');
}, 25);

redirect('custom-uri://');

সম্পাদনা করুন:

আইফ্রেমে নিখুঁত অবস্থান যুক্ত করুন যাতে sertedোকানো হলে পৃষ্ঠার নীচে কোনও র্যান্ডম বিস্তৃত সাদা জায়গা নেই।

এছাড়াও এটি লক্ষণীয় যে আমি অ্যান্ড্রয়েডের সাথে এই পদ্ধতির কোনও প্রয়োজন খুঁজে পাইনি। ব্যবহার window.location.hrefকরা ভাল কাজ করা উচিত।


1
এটি কাজ করে !! ধন্যবাদ আমি অবশেষে এমন একটি সমাধান পেয়েছি যা প্রতিটি ব্রাউজারে কাজ করে।
কলার

2
যদি এটি পাওয়া যায় তবে এটিই সেরা সমাধান। ধন্যবাদ. পপআপ আর কোনও ত্রুটি নেই।
বিভক্ত

1
@ আপনি যদি এই লিঙ্কটি ক্লিক করার সময় এই কোডটি বরখাস্ত করতে চান তবে লিংকটি ক্লিক করার পরে এই কোডটি একটি ফাংশনটিতে গুটিয়ে রাখুন, যা ডাকা হয়।
cnotethegr8

1
@ cnotethegr8 আমি এটিকে একটি ফাংশনে রেখেছি এবং কাস্টম ইউআরএলে পুনর্নির্দেশ দুর্দান্ত কাজ করে তবে আইটিউনসে ফিরে আসে না। আমার কোড এখানে । আমি কী মিস করছি?
টিম

1
আইওএস ৯-এ অন্য কারওর সাথে সমস্যা হয়েছে এটি সাফারিতে আমার পক্ষে আর কাজ করে না।
বগলসন

20

আইওএস 9-এ অ্যাপল শেষ পর্যন্ত নির্দিষ্ট http://ইউআরএলগুলি হ্যান্ডেল করতে আপনার অ্যাপ্লিকেশনটি নিবন্ধ করার সম্ভাবনাটি চালু করেছিল : ইউনিভার্সাল লিংক

এটি কীভাবে কাজ করে তার একটি মোটামুটি ব্যাখ্যা:

  • আপনি http://আপনার অ্যাপ্লিকেশনটিতে কয়েকটি ডোমেন (ওয়েব ইউআরএল) এর জন্য ইউআরএল খোলার আগ্রহ প্রকাশ করেছেন ।
  • নির্দিষ্ট ডোমেনগুলির সার্ভারে আপনাকে কোন ইউআরএল খুলতে হবে তা নির্ধারণ করতে হবে যে অ্যাপ্লিকেশনটিতে সার্ভারের ডোমেন থেকে URL খোলার আগ্রহ প্রকাশ করেছে।
  • আইওএস ইউআরএল লোডিং পরিষেবা http://উপরে বর্ণিত হিসাবে সেটআপের জন্য ইউআরএলগুলি খোলার সমস্ত প্রচেষ্টা পরীক্ষা করে এবং ইনস্টল করা থাকলে সঠিক অ্যাপটি স্বয়ংক্রিয়ভাবে খোলে; প্রথমে সাফারি দিয়ে না গিয়ে ...

আইওএসের সাথে গভীর সংযোগ স্থাপনের এটি সবচেয়ে সহজ উপায়, দুর্ভাগ্যক্রমে এটি কেবল আইওএস 9 এবং আরও নতুন ক্ষেত্রে কাজ করে ...


এবং এটি ব্রাউজারের অভ্যন্তরে কাজ করে না ... কেবল বাইরে যেমন আইমেজেজ বা নোটগুলি থেকে
মিহে মিক

9

নাথান এবং জেবির উত্তর নিয়ে আবার বিল্ডিং:

ইউআরএল ডাব্লু / ও অতিরিক্ত ক্লিক থেকে অ্যাপটি কীভাবে প্রবর্তন করবেন আপনি যদি এমন কোনও সমাধান পছন্দ করেন যা কোনও লিঙ্কে ক্লিক করার অন্তর্বর্তী পদক্ষেপ অন্তর্ভুক্ত না করে, তবে নিম্নলিখিতটি ব্যবহার করা যেতে পারে। এই জাভাস্ক্রিপ্টের সাহায্যে আমি জ্যাঙ্গো / পাইথন থেকে এমন একটি এইচটিসিপ্লাইজেন্স বস্তুটি ফিরিয়ে দিতে সক্ষম হয়েছি যা কোনও অ্যাপ্লিকেশন ইনস্টল করা থাকলে বা বিকল্পভাবে অ্যাপ স্টোরটি সময়সীমার ক্ষেত্রে চালু করা হলে সফলভাবে চালু করে। দ্রষ্টব্য আইফোন 4 এস এ কাজ করার জন্য আমার সময়সীমা 500 থেকে 100 টি সামঞ্জস্য করতেও প্রয়োজন। আপনার অবস্থার জন্য এটি সঠিকভাবে পরীক্ষা করতে পরীক্ষা করুন এবং তাত্ক্ষণিক।

<html>
<head>
   <meta name="viewport" content="width=device-width" />
</head>
<body>

<script type="text/javascript">

// To avoid the "protocol not supported" alert, fail must open another app.
var appstorefail = "itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&uo=6";

var loadedAt = +new Date;
setTimeout(
  function(){
    if (+new Date - loadedAt < 2000){
      window.location = appstorefail;
    }
  }
,100);

function LaunchApp(){
  window.open("unknown://nowhere","_self");
};
LaunchApp()
</script>
</body>
</html>

9
window.location = appurl;// fb://method/call..
!window.document.webkitHidden && setTimeout(function () {
    setTimeout(function () {
    window.location = weburl; // http://itunes.apple.com/..
    }, 100);
}, 600);

document.webkitHidden আপনার অ্যাপ্লিকেশনটি ইতিমধ্যে অনুরোধ করা হয়েছে এবং বর্তমান সাফারি ট্যাবটিকে ব্যাকগ্রাউন্ডে যাওয়ার জন্য সনাক্ত করা হয়, এই কোডটি www.baidu.com থেকে রয়েছে


আমি এই সমাধানটি পরীক্ষা করে দেখেছি যে এটি ইভেন্টগুলি সঠিকভাবে বিতরণ করার সময়, "সাফারি এই পৃষ্ঠাটি খুলতে পারে না কারণ ঠিকানাটি অবৈধ" ত্রুটি সংলাপটি মুহুর্তে উপস্থিত হয়। (এটি একটি সেকেন্ডের ভগ্নাংশের পরে স্বয়ংক্রিয়ভাবে খারিজ হয়)।
মাইকেলহানসন

লোড করতে একটি iframe ব্যবহার করুন appurlএবং weburlআপনার সমস্যার সমাধান করতে পারে
zyanlu

1
@ জ্যায়ানলু: আমি আইফ্রেমে চেষ্টা করেছি। বিটি স্টিল সাফারি একই ত্রুটি দেখাচ্ছে।
কুঞ্জুস

5

আপনি যদি নিজের অ্যাপ্লিকেশানের জন্য কাস্টম স্কিম সেট iframeকরে আপনার ওয়েব পৃষ্ঠায় একটি যোগ করেন src, আইওএস স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনটিতে সেই স্থানটিতে পুনঃনির্দেশ করবে। অ্যাপটি ইনস্টল না করা থাকলে কিছুই হবে না। এটি আপনাকে ইনস্টল করা থাকলে অ্যাপ্লিকেশনটিতে গভীর লিঙ্ক করতে দেয় বা এটি ইনস্টল না থাকলে অ্যাপ স্টোরে পুনর্নির্দেশ করতে দেয়।

উদাহরণস্বরূপ, যদি আপনি টুইটার অ্যাপটি ইনস্টল করে থাকেন এবং নিম্নলিখিত মার্কআপ সহ কোনও ওয়েবপৃষ্ঠায় নেভিগেট করেন তবে আপনাকে তত্ক্ষণাত অ্যাপটিতে পরিচালিত হবে।

<!DOCTYPE html>
<html>
    <head>
    <title>iOS Automatic Deep Linking</title>
    </head>
    <body>
        <iframe src="twitter://" width="0" height="0"></iframe>
        <p>Website content.</p>
    </body>
</html>

এখানে আরও পুঙ্খানুপুঙ্খ উদাহরণ রয়েছে যা অ্যাপ্লিকেশন ইনস্টল না করা থাকলে অ্যাপ স্টোরটিতে পুনঃনির্দেশ করে:

<!DOCTYPE html>
<html>
    <head>
    <title>iOS Automatic Deep Linking</title>
    <script src='//code.jquery.com/jquery-1.11.2.min.js'></script>
    <script src='//mobileesp.googlecode.com/svn/JavaScript/mdetect.js'></script>
    <script>
      (function ($, MobileEsp) {
        // On document ready, redirect to the App on the App store.
        $(function () {
          if (typeof MobileEsp.DetectIos !== 'undefined' && MobileEsp.DetectIos()) {
            // Add an iframe to twitter://, and then an iframe for the app store
            // link. If the first fails to redirect to the Twitter app, the
            // second will redirect to the app on the App Store. We use jQuery
            // to add this after the document is fully loaded, so if the user
            // comes back to the browser, they see the content they expect.
            $('body').append('<iframe class="twitter-detect" src="twitter://" />')
              .append('<iframe class="twitter-detect" src="itms-apps://itunes.com/apps/twitter" />');
          }
        });
      })(jQuery, MobileEsp);
    </script>
    <style type="text/css">
      .twitter-detect {
        display: none;
      }
    </style>
    </head>
    <body>
    <p>Website content.</p>
    </body>
</html>

আপনার প্রথম উদাহরণটির সমস্যাটি হ'ল আপনি যদি মোবাইল সাফারিতে ফিরে যান তবে এটি টুইটার চালু হওয়ার পরেও "দ্য টুইটার অ্যাপ ইনস্টলড নয়" প্রদর্শিত হবে। "ওয়েবসাইট সামগ্রী" প্রদর্শন করে দ্বিতীয় উদাহরণটির সাথে একই। অ্যাপ্লিকেশন ইনস্টল করা থাকলে এমন কিছু কোড থাকা দরকার যা কিছু আলাদা করে (অন্য URL টি লোড করে, বা দুটি বার্তাগুলির মধ্যে একটি প্রদর্শন করে)।
মাহবাউদজ

1
হ্যাঁ, @ মেমবাউডজ, আপনি যদি পাঠটি পড়েন তবে অ্যাপটিতে স্বয়ংক্রিয়ভাবে পুনঃনির্দেশ করা সম্ভব কিনা তা দেখানোর পক্ষে এটি একটি সহজ উদাহরণ।
q0rban

আমি তারপরে আরও বিশদ উদাহরণ সহ অনুসরণ করব যা প্রকৃত ওয়েবসাইটের সামগ্রীটি প্রদর্শন করবে। আমি "দ্য টুইটার অ্যাপ্লিকেশন ইনস্টল করা নেই" পাঠ্যটিকে এটি পরিষ্কার করে দিলে তা মুছতে পারি।
q0rban

আইওএস 6 টি এখনও পপআপ প্রদর্শন করে page পৃষ্ঠাটি অবৈধ url
Andrei Shender

@ আন্ড্রেইশেন্ডার, এই লেখার সময় আইওএস ব্যবহারের পরিসংখ্যান এখানে রয়েছে: monosnap.com/image/8eXUcpEUi8fm94DiMZIdiIp4xUNaln.png আইওএস 8: 72%, আইওএস 7: 25%, পূর্ববর্তী সংস্করণগুলি: 3%
কিউবারবান

4

এখানে একটি সমাধান।

অস্পষ্টতা এবং ফোকাস ব্যবহার করে একটি বুলিয়ান সিটেইশন সেটআপ করুন

//see if our window is active
window.isActive = true;
$(window).focus(function() { this.isActive = true; });
$(window).blur(function() { this.isActive = false; });

আপনার লিঙ্কটি কোনও জ্যাকুরি ক্লিক হ্যান্ডলারের সাথে আবদ্ধ করুন যা এ জাতীয় কিছু বলে something

function startMyApp(){
  document.location = 'fb://';

  setTimeout( function(){
    if (window.isActive) {
        document.location = 'http://facebook.com';
    }
  }, 1000);
}

যদি অ্যাপটি খোলে, আমরা উইন্ডোতে ফোকাস হারাব এবং টাইমার শেষ হবে। অন্যথায় আমরা কিছুই পাই না এবং আমরা সাধারণ ফেসবুক ইউআরএল লোড করি।


পরামর্শের জন্য অনেক ধন্যবাদ। আমি এই সমস্যার মুখোমুখি হয়েছি যে পতাকাটি নিষ্ক্রিয় করার জন্য ঝাপসা "ব্লার বাহ্যিক অ্যাপ্লিকেশন" কথোপকথন যথেষ্ট বলে মনে হচ্ছে। অ্যাপটি ইনস্টল না করা হলেও এটি ঘটে (উদাহরণস্বরূপ, ডেস্কটপে আইফোন অ্যাপ্লিকেশন চালু করার উদ্দেশ্যে কোনও লিঙ্কটি ক্লিক করার সময়)। ধারনা?
ফ্লাকসন

2

আমি যতদূর জানি আপনি পুরো ওএসটিকে একটি http:+ ডোমেন URL বুঝতে পারবেন না । আপনি কেবলমাত্র নতুন স্কিমগুলি নিবন্ধন করতে পারেন (আমি x-darkslide:আমার অ্যাপ্লিকেশনটিতে ব্যবহার করি)। অ্যাপটি ইনস্টল করা থাকলে মোবাইল সাফারি অ্যাপটি সঠিকভাবে চালু করবে।

যাইহোক, অ্যাপ্লিকেশনটি "স্টিল এখানে না? আইটিউনস থেকে অ্যাপটি ডাউনলোড করতে এই লিঙ্কটিতে ক্লিক করুন" দিয়ে অ্যাপ্লিকেশন ইনস্টল করা হয়নি এমন কেসটি আপনাকে পরিচালনা করতে হবে। আপনার ওয়েব পৃষ্ঠায়।


2
এটি আর সঠিক নয়: আইওএস 9 এবং সাম্প্রতিক অ্যান্ড্রয়েড সংস্করণগুলির মাধ্যমে আপনি নির্দিষ্ট httpইউআরএল শুনতে আপনার অ্যাপ্লিকেশনটি নিবন্ধভুক্ত করতে পারেন
সেভেরিন

0

ব্যবহারকারী-এজেন্টটি পরীক্ষা করুন এবং এটি মোবাইল সাফারি ক্ষেত্রে আইফোন অ্যাপ্লিকেশনটি খুলতে একটি মাইপ্রোটোকল: // ইউআরএল খুলুন এবং চেষ্টা ব্যর্থ হলে অ্যাপটি ডাউনলোড করতে মোবাইল আইটিউনস খুলুন

এটি আমার কাছে যুক্তিসঙ্গত দৃষ্টিভঙ্গি বলে মনে হচ্ছে তবে আমি মনে করি না আপনি এটি দ্বিতীয় ব্যবহার হিসাবে মোবাইল আইটিউনগুলি খুলতে সক্ষম হবেন। আমি মনে করি আপনাকে একটি বা অন্যটি বেছে নিতে হবে - হয় আপনার অ্যাপে বা আইটুনগুলিতে পুনঃনির্দেশ।

যেমন আপনি যদি মাইপ্রোটোকল: // এ পুনর্নির্দেশ করেন তবে অ্যাপটি ফোনে না থাকলে আপনি আইটিউনে পুনঃনির্দেশ করার দ্বিতীয় সুযোগ পাবেন না।

আপনি সম্ভবত কোনও আইফোন অপ্টিমাইজড ল্যান্ডিং পৃষ্ঠায় পুনর্নির্দেশ করতে পারেন এবং ব্যবহারকারীকে আপনার অ্যাপ্লিকেশনটিতে ক্লিক করার বিকল্প দিতে পারেন, বা এটি না থাকলে আইটুনগুলিতে অ্যাপটি পেতে পারেন? তবে, আপনি সেখানে সঠিক জিনিসটি করতে ব্যবহারকারীর উপর নির্ভর করছেন। (সম্পাদনা করুন: আপনি যদি কোনও কুকি সেট করতে পারেন তবে এটি কেবল প্রথমবারের জিনিস?)


1
ওইটা ভুল. যদি কোনও ত্রুটি দেখানো হয় যে পৃষ্ঠাটি খোলা যাবে না (অ্যাপ্লিকেশন ইনস্টল করা নেই), জেএস এখনও কার্যকর করা হয়। আপনি কেন অন্য কোনও ফ্যালব্যাক সমাধানে পুনর্নির্দেশ করতে পারেন তা ঠিক।
এরিক

0

পপ-আপের সমস্যাটি সমাধানের জন্য, আমি আবিষ্কার করেছি যে অ্যাপলটির এই উদ্বেগের উপায় রয়েছে।

প্রকৃতপক্ষে, আপনি যখন এই লিঙ্কটিতে ক্লিক করেন , আপনি যদি অ্যাপ্লিকেশনটি ইনস্টল করেন, এটি এতে পুনরায় সজ্জিত হবে; অন্যথায়, আপনাকে কোনও পপ-আপ ছাড়াই ওয়েবপৃষ্ঠায় পুনঃনির্দেশ করা হবে।


3
আমি কীভাবে সেই লিঙ্কটি কাজ করছিল তা গভীরভাবে খনন করেছিলাম এবং আমি যে সর্বোত্তমভাবে সামনে আসতে পারি তা হ'ল এটি কোনও জাভাস্ক্রিপ্ট সমাধান নয়। অ্যাপল মনে হয় তাদের অ্যাপ্লিকেশনের জন্য একটি বিশেষ ইউআরএল হ্যান্ডলার নিবন্ধভুক্ত করেছে যা কাস্টম প্রোটোকলের প্রয়োজন নেই এবং পরিবর্তে ইউআরএল স্ট্রিংয়ের সাথে কিছু মিল রয়েছে। আপনি যে লিঙ্কটি প্রেরণ করেছেন তা এখানে 303 এর সাথে সাথেই পুনঃনির্দেশনা দেয় । আপনি যদি সেই লিঙ্কটি নিজের কাছে কোনও ইমেলটিতে প্রেরণ করেন তবে আপনি পর্যবেক্ষণ করতে পারবেন যে এটিতে ক্লিক করা থাকলে ইনস্টল করা থাকলে সরাসরি অ্যাপস্টোর অ্যাপ্লিকেশনটি নিয়ে আসে
কেসি

খুব আকর্ষণীয়. আপনি ঠিক বলেছেন: আমি যদি এটিতে ক্লিক করি তবে এটি ইনস্টল থাকলে অ্যাপস্টোর অ্যাপটি আনবে। তবে আপনি যদি "পবিত্র দিনগুলি" অবধি কিছু প্যারামিটার মুছে ফেলেন তবে এটি সাফারির মধ্যে উপস্থিত হয়। অ্যাপল বিশেষ ইউআরএল স্কিম নিবন্ধন করতে পারে ...
টাইটিগনেস

@ টিটিগনেস, আপনি অ্যাপ্লিকেশন বা ওয়েব পৃষ্ঠা খোলার জন্য এই পদ্ধতিতে আরও বিস্তারিত বলতে পারেন। এই জাতীয় ইউআরএল তৈরির ধরণ কী?
আন্দ্রে শেনদার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.