2016-05-22 3 views
0

3つの問題があります。そのすべてがFacebook APIとのリンク共有を中心にしています。ここで私はリンクを共有するために使用しているコードは次のとおりです。iOS Facebook ShareLinkのFacebookログインへの干渉を処理する

let content = FBSDKShareLinkContent() 
content.contentURL = NSURL(string: "fb.me app link url")! 
content.imageURL = NSURL(string: "image url")   
let messageDialog: FBSDKMessageDialog = FBSDKMessageDialog() 
messageDialog.delegate = self 
messageDialog.shareContent = content 
if messageDialog.canShow() { 
    messageDialog.show() 
} 

私は、着信共有リンクを処理するために、私のAppDelegate.swiftにこの機能を持っている:

:ここ

func application(app: UIApplication, 
       openURL url: NSURL, options: [String : AnyObject]) -> Bool { 

    handleSharedLink(url: url) 
    return true 
} 

は、3つの問題があります

  1. また、私のAppにFacebook Loginがあり、私のAppDelegateのopenURL機能がそれを妨害しています。 Facebookのログイン中に呼び出され、handleSharedLink()関数呼び出しを削除してtrueを返す場合でも、Facebookログインの途中で停止することになります。共有リンク処理がFacebookのログインに干渉しないように、これを適切に処理するにはどうすればよいですか?

  2. FBSDKShareLinkContent(上記のコードを使用)を使用してリンクを送信し、私のアプリがインストールされている電話でFacebookメッセンジャーでタップすると、アプリが開き、正常に動作します。しかし、私のアプリがインストールされていない電話で開くと、何もしません。 Facebook APIのドキュメントによると、誤っていないと、ユーザーにアプリがインストールされていない場合、ユーザーをアプリストアにリダイレクトする必要があります。この機能をどのように達成できますか?

  3. 私はfb.meで始まる私のアプリのためのApp Linkを作るためにFacebookを使いました。 FBSDKShareLinkContent(上記のコード)を使用してリンクを共有すると、共有している人へのfb.meリンクが表示されます。それが表示されないようにするにはどうすればよいですか?

上記の3つの問題に関する助けがあれば幸いです。

答えて

1

私はかなりの実験の後に自分で答えを見つけ出し、ドキュメントを読み直しました。同様の問題を抱えている人は、次の2つの手順で問題に記載されている問題をすべて解決できます。

FUNCアプリケーション:

  1. あなたのAppDelegateにこの機能を追加(アプリ:のUIApplication、 のOpenURL URL:NSURL、オプション:[文字列:ANYOBJECT]) - >ブール{ をURLかどうかをチェック//アプリリンクデータは、聞かせて たcheckUrl = BFURL(inboundURL:URL、sourceApplication:オプション[ "UIApplicationOpenURLOptionsSourceApplicationKey"]文字列として!)

    if checkUrl != nil { 
        //Handle incoming shared link 
    } else { 
        //Take care of handling url for Facebook login 
        return FBSDKApplicationDelegate.sharedInstance().application(
         app, 
         openURL: url, 
         sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, 
         annotation: nil) 
    } 
    

    }

  2. FBSDKShareLinkContentのコードでは、作成したfb.me URLにcontentURLを設定するのではなく、アプリのウェブサイトのURLに設定します。アプリのウェブサイトのヘッダーに、次のメタタグを追加します。

    <メタプロパティ= "アル:IOS:URL" "のInfo.plistで設定アプリのURL" コンテンツ= />

    <メタプロパティ= "アル:IOS:app_store_id" コンテンツ= "iTunesのアプリストアのID "/>

    <メタプロパティ=" アル:IOS:APP_NAME」コンテンツ= "アプリの名前" />

関連する問題