ios - সাম্প্রতিক এফবিএসডিকে দিয়ে আইওএস অ্যাপে সাফারি ব্রাউজারকে পুনর্নির্দেশ না করে কীভাবে ফেসবুককে সংহত করা যায়



objective-c iphone (4)

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

https://src-bin.com


Answer #1

আপনার নির্বাচিত লগইন আচরণটি যখন FBSDKLoginBehaviorWeb , তারপরে ওয়েবভিউ পপআপ খুলুন।

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
login.loginBehavior=FBSDKLoginBehaviorWeb;

পপআপ ফেসবুক:

দ্রষ্টব্য: যখন ফেসবুক আচরণ FBSDKLoginBehaviorBrowser ব্রাউজার হয় তখন এটি সর্বদা সাফারি ব্রাউজারে পুনঃনির্দেশিত হয়। FBSDKLoginBehaviorWeb এর আচরণটি পরিবর্তন করুন।

এফবি এসডিকে সর্বশেষ আপডেটের জন্য এটি ব্যবহার করুন

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    login.loginBehavior = FBSDKLoginBehaviorWeb;
    NSArray *userdetails;
    [login logInWithReadPermissions:userdetails fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
        if (error)
        {
            NSLog(@"Login Error : %@", error.description);
        }
        else if(result.isCancelled)
        {
            NSLog(@"Login Cancel By User");
        }
        else
        {
            //[self fetchUserDataForFacebookLogin];
            //[login logOut];
        }
    }];

Answer #2

এখানে আমি কোডটি ব্যবহার করি:

AppDelegate.swift

import UIKit
import FBSDKCoreKit
 @UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
 var window: UIWindow?
 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func applicationWillResignActive(application: UIApplication) {    
    FBSDKAppEvents.activateApp()
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
 }
}

LoginViewController.swift

 //MARK: FacebookLogin Button
@IBAction func btnFacebookLoginClicked(sender: AnyObject) {
    let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
    fbLoginManager.logOut()
    fbLoginManager.loginBehavior = FBSDKLoginBehavior.Web //Without safari Browser
    fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self, handler: { (result, error) -> Void in
        if (error != nil){
            let fbloginresult : FBSDKLoginManagerLoginResult = result
            if(fbloginresult.grantedPermissions.contains("email")){
                self.getFBUserData()
                fbLoginManager.logOut()
            }
        }else if result.isCancelled {
        print("Cancelled")
    }
    })
}

func getFBUserData(){
    if((FBSDKAccessToken.currentAccessToken()) != nil){
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
            if (error == nil){
                self.facebookUserDict = result as! NSDictionary
                print(result)
                print(self.facebookUserDict)
            print(self.facebookUserDict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as! String)
            }
        })
    }
}

Answer #3

গতকাল আমি ফেসবুকের সাথে তিন ধরণের লগইন ব্যবহার করে FBSDKLoginManager ব্যবহার করে আমার অ্যাপ্লিকেশনটি জমা দিন, আসলে ফেসবুক স্বয়ংক্রিয়ভাবে প্রথম তিনটি শর্ত অনুসরণ করে

ধরন 1

যদি ব্যবহারকারী ইতিমধ্যে ফেসবুক নেটিভ অ্যাপ্লিকেশন ইনস্টল করেন তবে অ্যাপ্লিকেশন থেকে বিশদটি পুনরুদ্ধার করা হবে।

টাইপ -2

যদি ব্যবহারকারীর ফেসবুক অ্যাপটি না থাকে তবে তিনি ডিভাইসের সেটিংসে লগ ইন করেছেন, ব্যবহারকারীর বিবরণগুলি সেগুলি থেকে নেওয়া হবে।

টাইপ -৩

উপরের শর্তের মধ্যে যদি কেউ সন্তুষ্ট না হন তবে ব্যবহারকারী স্বয়ংক্রিয়ভাবে Safari পুনঃনির্দেশিত হবে।

টাইপ -4

    if you none of the above three conditions is relevant for you please continue below code.

আপেল আপনার অ্যাপ্লিকেশন প্রত্যাখ্যান করে না

উদ্দেশ্য গ

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
login.loginBehavior=FBSDKLoginBehaviorWeb;  // it open inside the app using popup menu

দ্রুতগতি

var fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = FBSDKLoginBehavior.Native

FBSDKLoginBehaviour প্রকারগুলি

typedef NS_ENUM(NSUInteger, FBSDKLoginBehavior)
{
  /*!
@abstract Attempts log in through the native Facebook app. If the   Facebook app is
not installed on the device, falls back to \c  FBSDKLoginBehaviorBrowser. This is the
default behavior.
*/
 FBSDKLoginBehaviorNative = 0,
/*!
@abstract Attempts log in through the Safari browser
  */
FBSDKLoginBehaviorBrowser,
 /*!
  @abstract Attempts log in through the Facebook account currently signed in through Settings.
   If no Facebook account is signed in, falls back to \c FBSDKLoginBehaviorNative.
   */
 FBSDKLoginBehaviorSystemAccount,
  /*!
   @abstract Attemps log in through a modal \c UIWebView pop up

   @note This behavior is only available to certain types of apps. Please check the Facebook
   Platform Policy to verify your app meets the restrictions.
   */
  FBSDKLoginBehaviorWeb,
   };

নতুন ধারণা

IOSv4.x এর জন্য ফেসবুক এসডিকে

(v4.6.0 - সেপ্টেম্বর 10, 2015) তদ্ব্যতীত, লগইন, লাইক, শেয়ার ডায়ালগের মতো এসডিকে ডায়ালগগুলি সাফারির পরিবর্তে এসএফএসফারিভিউ কনট্রোলার সহ ডিভাইসের উপর ভিত্তি করে সেরা ইউআই নির্ধারণ করে। আইওএস 9 গাইডের জন্য আমাদের প্রস্তুতি গ্রহণ করুন।

আপনি পেতে পারেন


Answer #4

দ্রুত যখন আপনার নির্বাচিত লগইন আচরণ ওয়েব হয়, তারপরে ওয়েবভিউ পপআপ খুলুন।

 // Try to login with permissions
        let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()

        fbLoginManager.loginBehavior = FBSDKLoginBehavior.Web