উত্তর:
আপনি যখন আইওএস 9 এর জন্য আপনার অ্যাপ্লিকেশনটি তৈরি করেন আপনি ইউআরএল স্কিমগুলি ব্যবহার করা চালিয়ে যেতে পারেন এবং আপনি ইউআরএল স্কিমগুলি কল করতে চান, এখন আপনাকে সেগুলি আপনার অ্যাপ্লিকেশন ইনফ.প্লাইস্টে ঘোষণা করতে হবে। এখানে একটি নতুন কী রয়েছে, এলএসএপ্লিকেশন কুইরিশেমস , এবং এখানে আপনাকে স্ক্যানের তালিকা যুক্ত করতে হবে যা আপনি ক্যান ওপেনআরএল করতে চান।
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbauth2</string>
</array>
আপনি যদি iOS9 ব্যবহার করছেন তবে আপনার তথ্য.প্লেস্ট ফাইলটি আপডেট করা গুরুত্বপূর্ণ। আপনার কেবলমাত্র 3 টি পদক্ষেপ করা দরকার 1. ইনফরমেশন.পুলিস্টে যান 2 এলএস অ্যাপ্লিকেশন কুইরিসেসেমস এনএসআরির ডেটাটাইপ নামক একটি ক্ষেত্র যুক্ত করুন । ৩. এনএসএস স্ট্রিং ডেটাটাইপের একটি আইটেম এটি fbauth2 হিসাবে যুক্ত করুন।
ফেসবুক এসডিকে v4.6.0 হিসাবে আপনার প্লাস্ট ফাইলটিতে নিম্নলিখিত কীটি যুক্ত করুন:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
not
বলতে আপনি এই করণীয়, ভাল আপনি এটা নির্দিষ্ট যে!
কেবল ফেসবুকের ব্যাখ্যা অনুসরণ করুন: আইওএস 9
অ্যাপল এর জন্য আপনার অ্যাপ্লিকেশন প্রস্তুত করা এতে তাদের উল্লেখ করুন: গোপনীয়তা এবং আপনার অ্যাপ্লিকেশন কীনোট 2015
দয়া করে কেবল এটি আপনার সিএফবান্ডেল ইউআরএলইচ স্কিমগুলিতে যুক্ত করবেন না ... এটি ফেসবুক লেখায় কোনও অ্যাপ্লিকেশনটির প্রচেষ্টা হাইজ্যাক করবে, যার ফলে একটি পপআপ "এক্স অ্যাপ্লিকেশনটি খুলতে চায়" ডায়লগ দেখায় ...
আপনি এটি করতে চান না।
CF:
https://developers.facebook.com/docs/applinks/ios
https://www.fireeye.com/blog/threat-research/2015/04/url_masques_on_apps.html
https://www.reddit.com/r/workflow/comments/2tlx29/get_url_scheme_of_any_app
আমার কিউই পরীক্ষা চালানোর সময় আমি এটি পেয়েছিলাম কারণ আমাদের পরীক্ষার টার্গেটের মূল বান্ডেলে অ্যাক্সেস ছিল না। সুতরাং আমাকে একটি শর্ত যুক্ত করতে isRegisteredCanOpenURLScheme
হয়েছিলFBSDKInternalUtility.m
+ (BOOL)isRegisteredCanOpenURLScheme:(NSString *)urlScheme
{
static dispatch_once_t fetchBundleOnce;
static NSArray *schemes = nil;
dispatch_once(&fetchBundleOnce, ^{
schemes = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"LSApplicationQueriesSchemes"];
if (!schemes) { // This is a work around for our Kiwi tests as the Specs target doesn't have access to main bundle
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *path = [bundle pathForResource:@"Info" ofType:@"plist"];
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path];
schemes = [dictionary valueForKey:@"LSApplicationQueriesSchemes"];
}
});
return [schemes containsObject:urlScheme];
}
আইওএস 9 এর জন্য আপনার অ্যাপ্লিকেশনটি তৈরি করতে: (ফেসবুক শেয়ারের জন্য)
Info.plist
ফাইলটি খুলুন , তথ্য সম্পত্তি তালিকার অধীনে অন্য একটি ক্ষেত্র LSApplicationQueriesSchemes যুক্ত করুন এবং এটি ডেটাটাইপ বা সেট করুন ।Array
NSArray
String
NSString
fbauth2
, fbshareextension
, fbapi
আইটেমটি মান হিসাবে।এই ছবিটি অনুসরণ করুন :
Write the below code in your info.plist under the **LSApplicationQueriesScheme**
<string>fbapi</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>
<string>fbauth</string>
<string>fbauth2</string>
<string>fb-messenger-api20140430</string>
<string>fb-messenger-platform-20150128</string>
<string>fb-messenger-platform-20150218</string>
<string>fb-messenger-platform-20150305</string>
আপনি নীচের কোডটি দিয়ে চেষ্টা করতে পারেন swift 5.0
extension Bundle {
static let externalURLSchemes: [String] = {
guard let urlTypes = main.infoDictionary?["LSApplicationQueriesSchemes"]
as? [String] else {
return []
}
return urlTypes
}()
}
আপনি কল করে কল করতে পারেন Bundle
guard Bundle.externalURLSchemes.contains(URLScheme) else {
return
}