From Xojo Documentation
|You are currently browsing the old Xojo documentation site. Please visit the new Xojo documentation site!|
| This item was deprecated in version 2021r3.
Please use ObjCBlock as a replacement.
| This class is supported on Mobile (iOS).
Use ＃If...＃Endif with the Target... constants to ensure you only use this class where it is supported.
Used when callings declares that require Obj-C blocks. An iOSBlock is created from a Delegate and in turn creates an Objective-C block that will call into the delegate. This Objective-C block is retrieved from the Handle property and passed into declares.
The openURL command can be called with a series of Declares, the last of which requires a Block. Here are the Declares:
// NSString* launchUrl = @"http://www.xojo.com/%22;
// [[UIApplication sharedApplication] openURL:[NSURL URLWithString: launchUrl]];
Declare Function NSClassFromString Lib "Foundation" (name As CFStringRef) As Ptr
Declare Function sharedApplication Lib "UIKit" Selector "sharedApplication" (obj As Ptr) As Ptr
Dim sharedApp As Ptr = sharedApplication(NSClassFromString("UIApplication"))
Declare Function URLWithString Lib "Foundation" Selector "URLWithString:" ( id As Ptr, URLString As CFStringRef ) As Ptr
Dim nsURL As Ptr = URLWithString(NSClassFromString("NSURL"), url)
Declare Function openURL Lib "UIKit" Selector "openURL:options:completionHandler:" (id As Ptr, nsurl As Ptr, options As Ptr, handler As Ptr) As Boolean
Dim b As New iOSBlock(AddressOf URLResult)
Return openURL(sharedApp, nsURL, Nil, b.Handle)
URLResult is a global method with this Declaration: