web-dev-qa-db-ja.com

iOS 10.3でtel://スキームを使用して電話番号をダイヤルしようとするとプロンプトが表示される

10.3に更新した後、openURL:options:completionHandler:メソッドを使用してアプリの[通話]ボタンを押した後、アプリが電話番号を自動的にダイヤルしなくなりました。

代わりに、ユーザーの意図を確認するために毎回プロンプトが表示されます。

Appleドキュメントに従って:

電話URLスキームは、iOSデバイスで電話アプリを起動し、指定された電話番号のダイヤルを開始するために使用されます。ユーザーがウェブページの電話リンクをタップすると、iOSはユーザーが本当に電話番号をダイヤルするかどうかを尋ねるアラートを表示し、ユーザーが受け入れる場合はダイヤルを開始します。ユーザーがネイティブアプリでtelスキームを使用してURLを開くと、iOSはアラートを表示せず、ユーザーにそれ以上プロンプトを表示せずにダイヤルを開始します。ただし、ネイティブアプリは独自のアラートを表示するように構成できます。

これによると、プロンプトはWebページでは表示されますが、ネイティブiOSアプリでは表示されません。

これは10.3のバグですか?または、知らないinfo.plistに含める必要がある新しい関数や新しいプロパティはありますか?

ありがとう。

12
iOShepherd

これは、10.3リリースノートに既知の問題として記載されています。

https://developer.Apple.com/library/content/releasenotes/General/RN-iOSSDK-10.3/

openURL

サードパーティアプリケーションがtel://、facetime://、またはfacetime-audio://のURLでopenURLを呼び出すと、iOSはプロンプトを表示し、ダイヤルする前にユーザーの確認を要求します。

10.3アップデートの セキュリティコンテンツ にもリストされているので、これは今後も続く新機能であると想定しています。

プロンプトなしで通話を許可する問題がiOSに存在しました。この問題は、ユーザーに通話の開始を確認するように促すことで解決されました。

16
James P

Apple開発者がURLスキームに対してこのアラートを再アクティブ化したのは初めてですか?他のいくつかの以前のアップデートでも、この種のアクティブ化を実行し、次のOSでロールバックしたことを覚えています更新。

10.3.1の場合、米国では不正にダイヤルされた911コールが多かったというニュースを読みました。 https://9to5mac.com/2017/03/06/911-ios-exploit/

私の意見では、アラートの制限は間違った911ダイヤルを停止するために組み込まれています。

Appleは、この種の任意の変更をAPIやスキームに頻繁に適用することはできず、ユーザーのエクスペリエンスに大きな影響を与えると確信しています。

店にスピードダイヤルアプリを過去8年間置いています。 https://iTunes.Apple.com/us/app/speed-dial/id306569903?ls=1&mt=8# 過去数週間で、多くのユーザーがこの新しい制限に関する不満を訴えていますスピードダイヤルをさらにタッチします。

現時点では、次のアップデートでAppleがこの既知の問題を修正するまで待機する必要があります。これは、URLスキームに依存し、アラートスキームに依存しない100の生産性アプリがあるためです。

2
Devaski