আইওএস 9 টি ইউআরএল স্কেমের সাহায্যে ইনস্টাগ্রাম অ্যাপ খুলছে না


138

নীচের ইউআরএলটি আইওএস 8.3 এবং নিম্নে খোলে, তবে এটি কার্যকর হয় না এবং আইওএস 9

let instagramURL = NSURL(string: "instagram://app")

ইউআরএল খুলবে না কেন?


কি +canOpenURL:ফিরে আসে?
থিয়েলস

আপনি কি ত্রুটি পাচ্ছেন? এটি এক্সকোড সম্পর্কে কোনও প্রশ্ন নয় ।
জাল

এটি "যদি ইউআইএপ্লিকেশন.শার্ড অ্যাপ্লিকেশন ()। ক্যান ওপেন ইউআরএল (ইনস্টাগ্রামে ইউআরএল!)" ব্যর্থ হয় তবে চেক
স্ক.আজাদ

অনুগ্রহ করে নিবন্ধটি এখানে দেখুন: awkwardhare.com/post/121196006730/… আইওএস 9-তে আপনাকে অবশ্যই অ্যাপ্লিকেশনটি যে ইউআরএল স্কিমগুলি সন্ধান করছে তা অবশ্যই নির্দিষ্ট করতে হবে (আমি এটি নিজেই করি নি)
থিয়েলস

3
এটিকে আপনার তথ্য.প্লেস্ট ফাইলটিতে যুক্ত করুন <key> এলএস অ্যাপ্লিকেশনকুইয়ারিস স্কিমস </key> <অ্যারে> <স্ট্রিং> URLScma1 </string> <string> URLScma2 </string> <string> URLScma3 </string> </array>
কমলেশ্বর

উত্তর:


210

আইওএস 9 ইউআরএল স্কিম হ্যান্ডলিংয়ে একটি ছোট পরিবর্তন করেছে। আপনার অ্যাপ্লিকেশনটিকে আপনার LSApplicationQueriesSchemesকীটি ব্যবহার করার জন্য কল করতে হবে সেই url গুলি অবশ্যই সাদা তালিকাভুক্ত করতে হবে Info.plist

দয়া করে এখানে পোস্ট দেখুন: http://awkwardhare.com/post/121196006730/quick-take-on-ios-9-url-scheme-changes

মূল উপসংহারটি হ'ল:

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

যদি আপনি এমন কোনও URL- এ "ওপেন URL" পদ্ধতিটি কল করেন যা আপনার শ্বেত তালিকাতে নেই তবে এটি নিঃশব্দে ব্যর্থ হবে। একটি "এই অ্যাপ্লিকেশনটিকে স্কিম এক্সএক্সএক্সএক্সএক্সএর জন্য জিজ্ঞাসা করার অনুমতি নেই" সিস্লোগ এন্ট্রি প্রদর্শিত হবে।

লেখক আরও অনুমান করেছেন যে এটি ওএসের সাথে একটি বাগ এবং অ্যাপল এটি পরবর্তী প্রকাশে এটি ঠিক করবে।


23
স্পষ্টকরণের পয়েন্ট হিসাবে, LSApplicationQueriesSchemes অ্যারে, অর্থাৎ "comgooglemaps: //" শ্বেত তালিকাভুক্ত করার জন্য একটি নির্দিষ্ট অ্যাপের স্ট্রিংয়ে ": //" অন্তর্ভুক্ত করবেন না। যদি আপনি ": //" canOpenUrl অন্তর্ভুক্ত করেন: NO ফেরত দেবে এবং "এই অ্যাপ্লিকেশনটিকে স্কিম এক্সএক্সএক্সএক্সএক্সের জন্য জিজ্ঞাসা করার অনুমতি নেই" সাইলগ / ত্রুটি সরবরাহ করবে। যাইহোক, আপনি যখন ক্যান ওপেনআরল এর আসল কল করবেন: আপনার এখনও অবশ্যই কোলন অর্থাৎ ক্যানওপেনআরল অন্তর্ভুক্ত করতে হবে: @ "comgooglemaps:"।
এমফিটিকআর্মপাম্প

5
অ্যাপল, বাস্তবে সাম্প্রতিক আপডেটে এটি ঠিক করেছে। সীমাবদ্ধ -openURL:থাকলেও সর্বদা কাজ করে -canOpenURL:
টিম জনসেন

এর মূল কথা কি? সুরক্ষাটি যদি আমি কেবল প্লাস্টে সমস্ত কিছু তালিকাভুক্ত করতে পারি এবং এখনও এর জন্য জিজ্ঞাসা করি?
ম্যাকিয়েজ সুইচ

@ ম্যাসিজেসুইচ একটি কারণ হ'ল আপনি অ্যাপলে পুনরায় জমা না দিয়ে তালিকাটি পরিবর্তন করতে পারবেন না।
থ্যালাস

নোটগুলি কেবলমাত্র iOS এসডকে 9 এর সাথে সংকলিত অ্যাপ্লিকেশনগুলির সাথে সম্পর্কিত Note "আপনি iOS SDK এর 9.0 সঙ্গে recompiling না হলে, আপনার অ্যাপ্লিকেশন 50 স্বতন্ত্র স্কিম সীমাবদ্ধ (canOpenURL কল পরে আসতে কোন)", উল্লিখিত হিসাবে developers.facebook.com/docs/ios/ios9
mkll

158

উপরে যেমন বলা হয়েছে, আপনি তথ্য প্লিস্টে একটি কী যুক্ত করতে চান, বেশিরভাগ সামাজিক নেটওয়ার্কের জন্য এখানে তালিকা দেওয়া আছে

<key>LSApplicationQueriesSchemes</key>
    <array>
     <string>fb</string>
     <string>fbapi</string>
     <string>fbauth2</string>
     <string>fbshareextension</string>
     <string>fb-messenger-api</string>
     <string>twitter</string>
     <string>viber</string>
     <string>whatsapp</string>
     <string>wechat</string>
     <string>line</string>
     <string>instagram</string>
     <string> instagram-stories</string>
     <string>kakaotalk</string>
     <string>mqq</string>
     <string>vk</string>
     <string>comgooglemaps</string>
     <string>googlephotos</string>
     <string>ha</string>
     <string>yammer</string>
    </array>

* প্রথম 3 টি ম্যাচ ফেসবুক (FBSDK 4.6): fbapi, fbauth2, fbshareexistance। "হা" স্ন্যাপচ্যাটের জন্য


থেক্স, আমি মনে করি ভি তালিকায় "fb" যুক্ত করা দরকার
শিব কৃষ্ণ

1
@sivakrishna FB এখানে উল্লেখ নেই developers.facebook.com/docs/ios/ios9
Matthieu Rouif

তবে আমি যদি কোনও ফেসবুক পৃষ্ঠায় পুনরায় ডাইরেক্ট করতে চাই তবে " ফেসবুক. com//২২ ", তারপরে কেবল এফবি যুক্ত করার পরে এটির ক্রিংগ
কৃষ্ণ

প্রায় ভাল. অক্টোবর ২০১৫ এ আমি ফেসবুক শেয়ারের কথোপকথনের অদ্ভুত ইউআরএলগুলির সাথে কিছু ব্যর্থতা পেয়েছি। আমি এগুলিকে উত্তর হিসাবে যুক্ত করেছি, এটিকে আপনার সাথে নির্দ্বিধায় যোগ করুন যা সত্যই সঠিক।
এলবিল্ড

1
এবং Ha://add/[username]দ্রুতগতিতে বন্ধুদের স্ন্যাপচ্যাট যুক্ত করতে
EssamSoft

87

এটি আইওএস 9 এর একটি নতুন সুরক্ষা বৈশিষ্ট্য more আরও তথ্যের জন্য ডাব্লুডাব্লুডিসি 2015 সেশন 703 দেখুন।

এসডিকে 9 দিয়ে নির্মিত যে কোনও অ্যাপ্লিকেশনটিকে LSApplicationQueriesSchemesতার প্লিজ ফাইলটিতে একটি এন্ট্রি সরবরাহ করা দরকার, এটি ঘোষণা করে যে কোন স্কিমগুলি কোয়েরি করার চেষ্টা করে।

<key>LSApplicationQueriesSchemes</key>
<array>
 <string>urlscheme</string>
 <string>urlscheme2</string>
 <string>urlscheme3</string>
 <string>urlscheme4</string>
</array> 

বিষয় পরিষ্কার করা। এটি কি এই জাতীয় অ্যাপ্লিকেশনগুলি বাতিল করে যা ব্যবহারকারীকে তাদের নিজস্ব ইউআরএল স্কিম + প্রবেশ করতে দেয়?
জনি 1

@ জনি না, কারণ আপনি এখনও কোনও ইউআরএল ব্যবহার করে খোলার চেষ্টা করতে পারেন openURL:। এবং এটি আপনাকে জানাবে যে ওপেনিং সফল হয়েছিল কিনা।
লিও নাটান

হ্যাঁ তবে ক্যান ওপেন ইউআরএল ইউজ করা যায় না তাই আমরা ব্যবহারকারীকে বলতে পারি না এটি কাজ করবে কি না, তাকে কেবল নিজের জন্য চেষ্টা করতে হবে।
জনি

আমি গুগল ম্যাপ খুলতে চাই আমাকে urlscheme এ কী রাখতে হবে?
কোডিং 22

25

দুটি অ্যাপস টেস্টএ এবং টেস্টবি ধরে নিচ্ছি। টেস্টবি জিজ্ঞাসা করতে চায় টেস্টএ ইনস্টল করা আছে কি না। "টেস্টএ" তার তথ্য.পালিস্ট ফাইলে নিম্নলিখিত URL টি স্কিমটি সংজ্ঞায়িত করে:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>testA</string>
        </array>
    </dict>
</array>

"টেস্টবি" দ্বিতীয় অ্যাপটি কল করে "টেস্টএ" ইনস্টল করা আছে কি না তা জানার চেষ্টা করে:

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"TestA://"]];

তবে এটি আইওএস 9 এ সাধারণত কোনও ফিরিয়ে দেবে না কারণ টেস্টবি'র তথ্য.পলিট ফাইলটিতে "টেস্টএ" কে এলএস অ্যাপ্লিকেশন কুইরিস স্কিমেস এন্ট্রিতে যুক্ত করা দরকার। এটি টেস্টবি'র তথ্য.পলিট ফাইলটিতে নিম্নলিখিত কোড যুক্ত করে করা হয়:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>TestA</string>
</array>

একটি কার্যকরী বাস্তবায়ন এখানে পাওয়া যাবে: https://github.com/gatzsche/LSApplicationQueriesSchemes- ওয়ার্কিং- উদাহরণ


অপেক্ষা করুন, টেস্টবি অ্যাপ্লিকেশনটির তালিকাভুক্তিতে "টেস্টএ" হিসাবে এলএসএপ্লিকেশন কুইরিশেমস কীগুলির স্ট্রিং মান হওয়া উচিত নয়?
নিক ইয়েকিমভ

22

থেকে, সেশন 703 ডাব্লুডাব্লুডিসি 2015:

আপনি যখন আইওএস 9 এর জন্য আপনার অ্যাপ্লিকেশনটি তৈরি করেন আপনি ইউআরএল স্কিমগুলি ব্যবহার করা চালিয়ে যেতে পারেন এবং আপনি ইউআরএল স্কিমগুলি কল করতে চান, এখন আপনাকে সেগুলি আপনার অ্যাপ্লিকেশন ইনফ.প্লাইস্টে ঘোষণা করতে হবে। একটি নতুন কী রয়েছে LSApplicationQueriesSchemesএবং এখানে আপনি যে স্ক্যানগুলি করতে চান তার তালিকা যোগ করতে হবে ওপেন URL এ।

উদাহরণস্বরূপ, এফবি এর ক্ষেত্রে


1
হ্যাঁ, এটা না। এটি এখনও com.Google- এর সাথে কাজ করবে না, এমনকি তথ্য.পুলিস্ট দিয়েও
রাডু

আপনি কি এইটির জন্য কোনও সমাধান খুঁজে পেয়েছেন?
সালমান হাসরাত খান

1
একটি ছবি মূল্য 1000 শব্দ। স্ক্রিনশট জন্য ধন্যবাদ। এটা আমার দরকার ছিল।
sean808080

3

একটি শেয়ার ডায়লগ থেকে ফেসবুক ভাগ করে নেওয়া এমনকি @ ম্যাথিউ উত্তর (যা অন্যান্য সামাজিক ইউআরএলগুলির জন্য 100% সঠিক) এর সাথে ব্যর্থ হয়। আমি ফেসবুক এসডিকে থেকে বিপরীত ইউআরএল একটি সেট যোগ করতে হয়েছিল।

<array>
        <string>fbapi</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
        <string>fb-messenger-api</string>
        <string>twitter</string>
        <string>whatsapp</string>
        <string>wechat</string>
        <string>line</string>
        <string>instagram</string>
        <string>kakaotalk</string>
        <string>mqq</string>
        <string>vk</string>
        <string>comgooglemaps</string>
        <string>fbapi20130214</string>                                                    
        <string>fbapi20130410</string>                                                     
        <string>fbapi20130702</string>                                                    
        <string>fbapi20131010</string>                                                    
        <string>fbapi20131219</string>                                                    
        <string>fbapi20140410</string>                                                     
        <string>fbapi20140116</string>                                                     
        <string>fbapi20150313</string>                                                     
        <string>fbapi20150629</string>
    </array>

আপনি কি জানেন যে কোন নথিটি দেখতে আমি কোন অ্যাপ্লিকেশনটি ব্যবহার করতে পারি এবং আপনি কি আমাকে এর জন্য কোড সরবরাহ করতে পারেন?
নিশাত জাহান

2

সুইফটে 4.2 এবং এক্সকোড 10.1

ইনফিট.লিস্টে CFBundleURLSchemes এবং LSApplicationQueriesSchemes যুক্ত করা দরকার।

-> আপনার প্রকল্পে info.plist নির্বাচন করুন,

-> রাইট ক্লিক করুন,

-> উত্স কোড হিসাবে ওপেন নির্বাচন করুন

নীচের স্ক্রিন শট দেখুন

এখানে চিত্র বর্ণনা লিখুন

-> এক্সএমএল ফাইলটি খোলা হবে

-> অনুলিপি - কোডের নিচে পেস্ট করুন এবং আপনার আইডির সাথে প্রতিস্থাপন করুন

জিএফএল, এফবি, টুইটার এবং লিঙ্কযুক্ত এর জন্য সিএফবান্ডেল URLSchemes এবং LSApplicationQeriesSchemes।

<key>CFBundleURLTypes</key>
    <array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>li5****5</string>
            <string>com.googleusercontent.apps.8***************5f</string>
            <string>fb8***********3</string>
            <string>twitterkit-s***************w</string>
        </array>
    </dict>
</array>
<key>FacebookAppID</key>
<string>8*********3</string>
<key>FacebookDisplayName</key>
<string>K************ app</string>
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-share-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>

    <string>twitter</string>
    <string>twitterauth</string>

    <string>linkedin</string>
    <string>linkedin-sdk2</string>
    <string>linkedin-sdk</string>

</array>

আপনার চূড়ান্ত তথ্য.পলিট ফাইলটি স্ক্রিনের নীচে দেখুন

এখানে চিত্র বর্ণনা লিখুন


1

এটি লক্ষ করা গুরুত্বপূর্ণ যে 9.0.x এ জেলব্রোকড ফোন সহ একটি বাগ ছিল যা ইউআরএল স্কিমগুলি ভেঙে দিয়েছে। আপনি যদি জেলব্রোকেন ডিভাইসটি চালাচ্ছেন তবে সাইডিয়ায় প্যাটিসিহ আপডেট করেছেন তা নিশ্চিত করুন


1

ভাল আপনি শর্তাধীন চেক না করে সরাসরি কল করে openURL:বা openURL:options:completionHandler:(আইওএস 10 এর পরে) একটি অ্যাপ্লিকেশন খুলতে পারেন canOpenURL:। অনুগ্রহ করে পড়ুন আলোচনা অধ্যায় মধ্যে পদ্ধতি: জন্য canOpenURL অ্যাপল ডক যেখানে বলা আছে:

ওপেন URL: পদ্ধতিটি LSApplicationQueriesSchemesপ্রয়োজনের দ্বারা সীমাবদ্ধ নয় ।


0

দেখে মনে হয় না যে এম্বেড থাকা প্যারামিটারগুলির সাথে URL গুলি কীভাবে নির্দিষ্ট করা যায় কেউই সম্বোধন করেছেন। যে কোনও ইউআরএলটিতে প্যারামিটার রয়েছে এটি LSApplicationsQueriesSchemes এ নির্দিষ্ট URL নির্দিষ্ট করা সম্ভব হবে না। উদাহরণস্বরূপ, ধরে নিন আমার কাছে একটি ইমেল অ্যাপ্লিকেশন রয়েছে যা প্রেরকদের ইমেল ঠিকানাটি পাস করে:

myemail://mailto?bob@gmail.com

এটি iOS9 এ কাজ করার একমাত্র উপায় যেকোন প্যারামিটারগুলি সরিয়ে ফেলা।


4
তাই না? প্লিস্টটিতে আপনার যা যুক্ত করা উচিত তা হ'ল myemail। প্যারামিটারগুলি এখানে কোনও ভূমিকা রাখে না।
লিও নাটান

0

অ্যাপল আইওএস ৯ এ ক্যানপেনের পদ্ধতি পরিবর্তন করেছে 9.। আইওএস ৯ এবং আইওএস ১০ এর ইউআরএল স্কিমগুলি যাচাই করছে এমন অ্যাপল অ্যাপলকে জমা দেওয়ার সাথে সাথে এই স্কিমগুলি ঘোষণা করতে হবে।



0

সুইফট ৩.১, সুইফট ৩.২, সুইফট ৪

if let urlFromStr = URL(string: "instagram://app") {
    if UIApplication.shared.canOpenURL(urlFromStr) {
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(urlFromStr, options: [:], completionHandler: nil)
        } else {
            UIApplication.shared.openURL(urlFromStr)
        }
    }
}

এগুলি তথ্য.পিস্টে যুক্ত করুন:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>instagram</string>
</array>

-1

আমি যখন আজ নিজের অ্যাপ থেকে ফেসবুককে কল করার চেষ্টা করেছি, তখন আমি জানতে পেরেছিলাম যে LSApplicationQueriesSchemesআমি কী Info.plist(এক্সকোড সংস্করণ 8.2.1 (8C1002)) যুক্ত করতে পারি এমন কোনও কী নেই । আমি সাবলাইম টেক্সটInfo.plist সহ ওপেন করেছি এবং ম্যানুয়ালি এটিকে ফাইলটিতে যুক্ত করেছি, তারপরে এটি কার্যকর হয়েছিল। কেবল আপনাকে জানাতেই যদি আপনি কীটিটি না খুঁজে পান তবে কেবল নিজেই এটি যুক্ত করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.