iOS Question NBPhoneNumberUtil INTERNATIONAL

fbritop

Well-Known Member
Licensed User
Longtime User
This post:


Point on how to validate an international number based on iPhoneNumber
(open source at: https://github.com/iziz/libPhoneNumber-iOS)

Can someone give me some advice on how to return the number formated (not validation), base on the GitHub code exposed, I´m looking for "INTERNATIONAL" method. I really have little o no experience at all in using external libs.

Thanks


B4X:
 NBPhoneNumberUtil *phoneUtil = [NBPhoneNumberUtil sharedInstance];
 NSError *anError = nil;
 NBPhoneNumber *myNumber = [phoneUtil parse:@"6766077303"
                              defaultRegion:@"AT" error:&anError];
 if (anError == nil) {
     NSLog(@"isValidPhoneNumber ? [%@]", [phoneUtil isValidNumber:myNumber] ? @"YES":@"NO");

     // E164          : +436766077303
     NSLog(@"E164          : %@", [phoneUtil format:myNumber
                                       numberFormat:NBEPhoneNumberFormatE164
                                              error:&anError]);
     // INTERNATIONAL : +43 676 6077303
     NSLog(@"INTERNATIONAL : %@", [phoneUtil format:myNumber
                                       numberFormat:NBEPhoneNumberFormatINTERNATIONAL
                                              error:&anError]);
     // NATIONAL      : 0676 6077303
     NSLog(@"NATIONAL      : %@", [phoneUtil format:myNumber
                                       numberFormat:NBEPhoneNumberFormatNATIONAL
                                              error:&anError]);
     // RFC3966       : tel:+43-676-6077303
     NSLog(@"RFC3966       : %@", [phoneUtil format:myNumber
                                       numberFormat:NBEPhoneNumberFormatRFC3966
                                              error:&anError]);
 } else {
     NSLog(@"Error : %@", [anError localizedDescription]);
 }

 NSLog (@"extractCountryCode [%@]", [phoneUtil extractCountryCode:@"823213123123" nationalNumber:nil]);

 NSString *nationalNumber = nil;
 NSNumber *countryCode = [phoneUtil extractCountryCode:@"823213123123" nationalNumber:&nationalNumber];

 NSLog (@"extractCountryCode [%@] [%@]", countryCode, nationalNumber);
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
B4X:
Private Sub PhoneFormat(Number As String, DefaultRegion As String) As String
    Dim util As NativeObject
    util = util.Initialize("NBPhoneNumberUtil").RunMethod("sharedInstance", Null)
    Dim PhoneNumber As NativeObject = util.RunMethod("parse:defaultRegion:", Array(Number, DefaultRegion))
    Dim error As NativeObject = util.GetField("gerror")
    If error.IsInitialized Then
        Log(error)
        Return ""
    End If
    Return util.RunMethod("format:numberFormat:", Array(PhoneNumber, 1)).AsString 'formats codes: https://github.com/iziz/libPhoneNumber-iOS/blob/3220b4027117c41f076f1bcc7f3c492ab8957348/libPhoneNumber/NBPhoneNumberDefines.h#L19
End Sub
 
Upvote 0

fbritop

Well-Known Member
Licensed User
Longtime User
B4X:
Private Sub PhoneFormat(Number As String, DefaultRegion As String) As String
    Dim util As NativeObject
    util = util.Initialize("NBPhoneNumberUtil").RunMethod("sharedInstance", Null)
    Dim PhoneNumber As NativeObject = util.RunMethod("parse:defaultRegion:", Array(Number, DefaultRegion))
    Dim error As NativeObject = util.GetField("gerror")
    If error.IsInitialized Then
        Log(error)
        Return ""
    End If
    Return util.RunMethod("format:numberFormat:", Array(PhoneNumber, 1)).AsString 'formats codes: https://github.com/iziz/libPhoneNumber-iOS/blob/3220b4027117c41f076f1bcc7f3c492ab8957348/libPhoneNumber/NBPhoneNumberDefines.h#L19
End Sub
Thanks!
I notice that you corrected the second parameter from 2 to 1

B4X:
Return util.RunMethod("format:numberFormat:", Array(PhoneNumber, 1)).AsString

For everyone else, this second parameters points to the type of format
0->E164
1->INTERNATIONAL
2->NATIONAL
3->RFC3966
 
Upvote 0
Top