2015-09-28 6 views
12

更新: Twitterがこの問題を修正しました。権限ボタンをクリックすると機能します!回答いただきありがとうございます。Twitterのユニバーサルディープリンクを無効にする

私はTwitters Oauth/AuthorizeのWebページを開いて、指示するUIWebViewを持っています。ユーザーはTwitterの詳細でサインインし、Twitterアカウントでアプリケーションの使用を認証します。このプロセスは、Twitter 6.37 iOSアプリケーションのリリース前には完璧に機能しました。現在WebViewがWebViewにとどまるのではなくhttps://twitter.com/oauth/authorize?oauth_tokenを検出すると、それはネイティブのTwitterアプリケーションを開き、終了します。 Twitterアプリケーションをアンインストールすると、すべてが通常はWebView内にとどまります。これを防ぐ方法を教えてください。私は自分のUIWebView内にとどまり、ディープリンクを自動的に開かないようにしたい。私は、iOS 9の新しいURLディープリンクの変更について読んできましたが、アプリケーションから他のネイティブアプリケーションへのリンクを止める方法はわかりません。助けてくれてありがとう!

enter image description here

+0

私は、FacebookやTwitterなどがユニバーサルリンクが自分のWebviewで作業するのをブロックしているという報告を聞いたことがあります。これは、UIWebViewとWKWebView(少なくともSFSafariViewControllerではない)では、この動作をインターセプトして無効にする方法が必要であると私に思います。 –

+0

私は同意します、私はshouldStartLoadWithRequestメソッドの中で試してみましたが、その周りに道を見つけることができないようです。私のアプリから飛び出す直前に、https://twitter.com/oauth/authorize?oauth_tokenをUIWebViewNavigationTypeFormSubmittedとして呼び出します。このケースでNOを返すと、ページを送信しません。アプリケーションの普遍的なリンクを開始するときに起動されるデリゲートがあった場合は、いいでしょう。 – mikemike396

+0

これは実用的なソリューションですか?私は好奇心です –

答えて

4

ツイッターが修正されるまで、Webビューのサインインボタンを使用する代わりに、キーパッドを入力してください。 分かりやすくするため、添付のスクリーンショットのリンクを参照してください。

Screenshot for the workaround

+0

うわーこれは実際に動作します!素晴らしい回避策!私はこの問題についてTwitterが知っていることを願っています。私はtwittercommunityforumのチケットを提出した。 – mikemike396

1

Xamarin質問を経由してこれに対する私の答え:

ツイッターを/を削除しない限りは、バイパスやリンゴ、アプリではない二次のOAuthを許可する「https://www.twitter.com/apple-app-site-association」のアプリのセクションを更新-site-associationファイルどうすればいいのか分かりません。これらのファイルは署名されており、iOSはそれらをOSレベルで処理します。

私はcontinueUserActivityデリゲートとUNIリンクから起動されたアプリケーションに渡されるNSUserActivityオブジェクトをあまり使っていませんが、起動したアプリ(Twitterなど)が元のコントロールに戻る方法は見当たりませんアプリケーションでは、その時点で、オートコールチェーンはとにかく壊れてしまうでしょう。

  • ユニーク。カスタムURLスキームとは異なり、Webサイトへの標準的なHTTPまたはHTTPSリンクを使用するため、ユニバーサルリンクは他のアプリでは要求できません。

  • セキュアです。ユーザーがアプリをインストールすると、iOSはウェブサーバーにアップロードしたファイルをチェックして、ウェブサイトでアプリがそのURLのためにURLを開くことを許可していることを確認します。あなただけがこのファイルを作成してアップロードすることができるので、あなたのウェブサイトとあなたのアプリケーションとの関連付けは安全です。

経由:https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

私はTwitterのデベロッパーフォーラムに問題(バグ?)として報告する

:私たちはiOSの上のGoボタンを使用することができますTwitterの認証画面では、回避策としてhttps://twittercommunity.com

+0

投稿ありがとう!私は将来解決策があることを願っています。ここでTwitterCommunityのWebサイトに投稿されているこの質問です - > https://twittercommunity.com/t/disable-twitter-universal-deep-links/53580 – mikemike396

+0

私はアプリレベルの認証を使用することになってしまいました。 Xamarinベースのアプリケーションから機能を削除(削除)し、Twitterアプリを起動してユーザーが投稿できるようにします。 – SushiHangover

+0

これは唯一の解決策であるようです。ユーザーが認証できる複数のプラットフォームがあるため、これは私たちにとってはあまり意味がありません。そのため、ウェブベースの認証ではなく、各プラットフォームのアプリレベル認証を構築する必要があります。 – mikemike396

3

私もこの問題に走ったと私にauthorizeエンドポイントがhttps://twitter.com/oauth/authorize?oauth_token="+oauthTokenに設定したので、それは(私はこれは、元の文書にあったと考えている)だった考え出しました。サブドメインとしてapiを追加した場合:https://api.twitter.com/oauth/authorize?oauth_token="+oauthToken、それはもはやディープリンクを引き起こし、Twitterアプリをロードしません。

+0

この男にビールを買う! +++ – Dunc

+0

Twitterizer(https://github.com/Twitterizer/Twitterizer)を使用しており、エンドポイントが正しく設定されているようです。 – mikemike396

+0

この男を買う2 beers !!!!! –

関連する問題