この他の質問の指示に従って、アプリの webviews にカスタム UserAgent を設定しています。具体的には、私は設定しています
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"MyApp/MyLongVersionInfoString", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
アプリ起動時。(NSMutableURLRequest の適切なヘッダーを UIWebView で使用するように設定するだけでは、UserAgent、User-Agent、User_Agent は機能しません。)
これにより、埋め込まれた Web ビューが正しいユーザー エージェントを使用するようになります。ただし、ダイアログ用に Facebook SDK で使用される埋め込み Web ビューも壊れます。window.location.href="fbconnect:\/\/success?post_id=100002469633196_43677789308119...
ユーザーは手動で閉じる必要があります)。これは、カスタム ユーザー エージェントが設定されている場合にのみ発生します。
Facebook が呼び出す前にユーザー エージェントの設定を解除し、後でリセットすることで問題を回避できると考えましたが、デフォルトのデフォルト設定を解除できないようです。[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"UserAgent"]
各 Facebook 呼び出しの前にandを呼び出して、呼び出しの結果ハンドラーでそれらを再度設定しようと[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:NSRegistrationDomain]
しましたが、それでも同じ誤動作が見られます。
初期設定を に切り替えてみまし[[NSUserDefaults standardUserDefaults] setObject:newUA forKey:@"UserAgent"];
たが、 Web ビューがユーザー エージェントを取得しません。
確かに、Facebook以外の埋め込みWebビューを備えたアプリで、以前に誰かがFacebook SDKを使用したことがあります。私は何が欠けていますか?私はこれについて多くのラウンドを行ってきましたが、それぞれがほとんどすべてを修正しているようには見えません。