1

私はiPhoneアプリを開発しています。ある時点で、ユーザーは電話番号を入力します。これらは、国際的またはローカルの任意の形式にすることができます。ローカル形式は次のようなものになります514-123-4567(またはさらに悪いことに、単に123-4567)、ローカル電話番号を国際形式 (E.164) に変換する方法はあります+15141234567か? これは、その国が何であるか (可能であれば地域も) を調べることを意味します。

1 つの方法は、ユーザーが常に国際形式を使用して電話番号を入力することを要求するか、ユーザーがいる国を選択することを要求することです。しかし、それを避けることができれば、よりユーザーフレンドリーになると思います。

また、ユーザーに位置情報を取得する許可を求めることも避けたいと思います。多くのユーザーは位置情報を拒否しています。

理想的には、彼女自身の電話番号の国と地域を取得したいと考えています。または、おそらく現在の通信事業者の国 (ユーザーが別の国でローミングしている場合)。

しかし、SIM カードのない iPod や iPad にアプリをインストールしたらどうなるでしょうか? 多分私はロケールを使用できますか?または、IP アドレスの位置を特定することはできますか?

より良いアイデアはありますか?

4

1 に答える 1

1
  1. 電話番号を「変換」する場合 - ここに例があります: STPhoneFormatter

  2. NSLocale を使用して、顧客をローカライズする方法を決定できますが、ユーザーがどこにいるかを決定する手段はありません (ロケールと言語は両方ともユーザーが構成可能です)。電話が現在どの国にあるかを本当に知りたい場合は、地理位置情報を使用してください。

ここに countryCode/country の NSLocale の例を示します。

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];  
于 2013-09-24T20:28:46.917 に答える