2016-07-25 3 views
2

私のアプリでは、認証するためのログイン画面(HTMLページ)をロードするWebビューがあります(OAuth)。認証が成功すると、応答で受け取るカスタムURIスキームを使用して、フローをネイティブアプリ画面にリダイレクトします。この設定は、iOSバージョン9.3.3にアップデートするまで、バージョン9.2.1のiPhoneデバイスで以前から動作していました。今、私は適切なリダイレクトURLを取得していないし、代わりに私はエラーメッセージが表示されますポップアップメッセージ "エラー:URLを表示することはできません"iOSバージョン9.3.3にアップデートした後、アプリケーションを起動するためのURLをリダイレクト

アップルの最新のアップデートで起こった特にWebkitについて。他の誰かが同様の問題に直面していますか?新しいアップデートのバグですか?

更新後にリダイレクトに失敗した理由を教えてもらえますか?セキュリティのアップグレード9.3.3への事前

+0

コードを表示します。 – matt

+0

同じ問題私は直面しています..解決策はありますか? – Dalvik

+0

同じです...私は正解に恩恵を与えます。 –

答えて

1

ようこそ

感謝!詳細なリンク!

あなたはユニバーサルリンクを受け入れ、URLスキームを忘れなければならない第一...

チェックこの移行チュートリアル:あなたはユニバーサルリンクを使用したくない場合は https://blog.branch.io/ios-9.2-deep-linking-guide-transitioning-to-universal-links

...

どの代理メソッドを使用してScheme呼び出しを取得していますか?その特定の場合には

-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 

を...変換し、あなたが行う場合は、起こって新しいエンコードのいずれかの&、+、/ URLスキームでは、多くを持っていないダブルチェックしてください。私はあなたが使用していると思います%エンコーディングにそれらが、これは良いです:

グッド:

myAppSchemeName://abc?param=AppleIsTough 

悪い:

myAppSchemeName://abc&param=AppleIsTough 

URLスキームの呼び出しを修正して完了してください!

幸せです!

+0

私はアプリケーションを使用しています(_ app:UIApplication、 openURL url:NSURL、 オプション:[String:AnyObject]) - > Bool – Mahesh

+0

NSURLErrorDomaniエラーコード101のwebviewデリゲートに間違ったリダイレクトURLがあります。 URLを表示することはできません "。したがって、抹消者はまったく呼び出されていません。 – Mahesh

+0

URLスキームにはこれらの文字は含まれておらず、上記のように「良い」に似ています。 – Mahesh

0

私はこれがthe questionと重複していると思います。これは質問者によって解決されるようです。答えは少し曖昧です。

ここで私の考えは、上記のソースと同じだと思う、私の環境(iOS 10.3デバイスとiOS 9.0 & 10.3シミュレータ)の問題を少なくとも解決する具体的な方法です。つまり、HTMLページに応答してリダイレクトしますこのページでは、以下のようになります。

<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
    setTimeout(function() { 
     window.location = "com.your.scheme://a/b?foo=bar"; 
    }, 1); 
</script> 
<h1>redirect...</h1> 
</body> 
</html> 

その(のsetTimeoutを使用してのような)非常に対症療法と、おそらく将来のIOSリリースによってブロックされたが、私はまだ理由でURLスキームを使用するように持っている人のためにここに置きます。

関連する問題