2017-04-14 13 views
3

に動作していないが、適切に評価されていませんシミュレータ。私のデバイスはiOS 10.3で、正常に動作します(Yelpが開きます)が、これはiOSの古いバージョンのシミュレータで動作するかどうかを確認する必要があります。canOpenURL - 私は私が直面してる問題は私のコードである8.1</p> <p>のデプロイメント・ターゲットを持っている私のアプリの中からYelpのを開くしようとしているシミュレータ

let urlStr: String = "yelp://" 
    let url = URL(string: urlStr) 
    if UIApplication.shared.canOpenURL(url!) { 
     print("can open") 
     if #available(iOS 10.0, *) { 
      print("10") 
      UIApplication.shared.open(url!, options: [:], completionHandler: nil) 
     } else { 
      print("NOT 10") 
      UIApplication.shared.openURL(url!) 
     } 
    } 
    else { 
     // Can not open URL 
     print("can not open url") 
    } 

シミュレータ(iOSの8.1)にいる間、コンソールに以下の版画:

can open 
NOT 10 

しかし、これは間違っています! Yelpはシミュレータにインストールされていませんが、その場合、print("can not open url")が評価されませんか?

ここはinfo.plistのURLTypes/LSApplicationQueriesSchemesです。

Here's my URLTypes/LSApplicationQueriesSchemes in the info.plist.

上記の私のコードに何か問題はありますか? iOSのさまざまなビルド(8.1から始まる)でQAを実行できるシミュレータで、Yelpのオープンを適切にテストするにはどうすればよいですか?友よありがとう。あなたのURLスキームでは、あなたがアイテムyelpを持っているので、

+0

好奇心を要します - 「openURL」の呼び出し後にシミュレータではどうなりますか?また、可能な場合は、サポートするシステムの最低バージョンのデバイスを少なくとも1つ保つことをお勧めします。 – Losiowaty

+0

iOS 9.xまたは10.xのシミュレータで同じ問題がありますか? – rmaddy

+0

シミュレータで 'Reset Content and Settings'を実行してからアプリを実行し、同じ結果が得られるかどうか確認できますか? – janusbalatbat

答えて

5

それは基本的に、システムがあなたがopenURLを呼び出すときに、独自のアプリを開こうとすると、trueを返します。その項目を変更して、もう一度テストしてください。

+0

良いキャッチです。接続を確認しましたが、LSApplicationQueriesSchemes '。 – rmaddy

+0

A ha!だから、ちょうどアイテム0(yelp)を取り除くと言っているのですか? – Joe

+1

@Joeはい、' URL Types'セクションのものです。あなた自身のアプリが 'yelp 'URLスキーム.Appleはそのためにあなたのアプリケーションを拒絶するだろうあなたのアプリケーションが独自のカスタムURLスキームを必要とする場合は、独自のカスタムスキームを指定し、Yelpのアプリケーションのために使用しないでください – rmaddy

関連する問題