iOS檢測3G或WiFi我不確定這是否可行,但我有這種情況。我的UIWebView中顯示了一個網站,該網站在UISegmentedController中設置了鏈接。他們的網站可以檢測您是在wifi上還是在3g網絡上?,F在,分段控制器指向2個不同的頁面:1 - iPhone友好登錄屏幕2 - 主頁,一旦您登錄。現在問題是:我可以編程我的應用程序來檢測它是WIFI還是3G(我知道你可以這樣做),但是根據答案轉到第1或第2部分有點像這樣:if (iPhone device is on 3g) {
Go to Segment 1;} else {
Go to Segment 0;}
3 回答
皈依舞
TA貢獻1851條經驗 獲得超3個贊
使用Apple在此處提供的代碼
Reachability *reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus status = [reachability currentReachabilityStatus];
if(status == NotReachable)
{
//No internet
}
else if (status == ReachableViaWiFi)
{
//WiFi
}
else if (status == ReachableViaWWAN)
{
//3G
}
縹緲止盈
TA貢獻2041條經驗 獲得超4個贊
如果您不想導入Reachability庫或處理通知程序,則可以使用以下簡單的同步方法:
typedef enum {
ConnectionTypeUnknown,
ConnectionTypeNone,
ConnectionType3G,
ConnectionTypeWiFi} ConnectionType;+ (ConnectionType)connectionType{
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, "8.8.8.8");
SCNetworkReachabilityFlags flags;
BOOL success = SCNetworkReachabilityGetFlags(reachability, &flags);
CFRelease(reachability);
if (!success) {
return ConnectionTypeUnknown;
}
BOOL isReachable = ((flags & kSCNetworkReachabilityFlagsReachable) != 0);
BOOL needsConnection = ((flags & kSCNetworkReachabilityFlagsConnectionRequired) != 0);
BOOL isNetworkReachable = (isReachable && !needsConnection);
if (!isNetworkReachable) {
return ConnectionTypeNone;
} else if ((flags & kSCNetworkReachabilityFlagsIsWWAN) != 0) {
return ConnectionType3G;
} else {
return ConnectionTypeWiFi;
}}- 3 回答
- 0 關注
- 576 瀏覽
添加回答
舉報
0/150
提交
取消
