Image Picker for FileMaker iOS SDK apps with MBS Plugin
Another function set for iOS is done: ImagePicker. It allows you to pick photos from the saved camera roll, the photo library and take a new picture via camera. You can control a lot of settings, e.g. whether to allow editing or which camera (front or rear) to use.
In all cases we call a script trigger later when the user selected an image. There you can take the picture and add it to a container field in your database.
Here is the same script to show the picker. Source Type is for example "Camera":
Set Variable [ $SourceType ; Value: Get(ScriptParameter) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.IsSourceTypeAvailable"; $sourceType ) ]
If [ $r ≠ 1 ]
Show Custom Dialog [ "Can't pick picture." ; "The source " & $sourceType & " is not available." ]
Exit Script [ Text Result: "failed" ]
End If
Set Variable [ $r ; Value: MBS( "ImagePicker.New" ) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.SetScript"; Get(FileName); "GotImage") ]
Set Variable [ $r ; Value: MBS( "ImagePicker.SetSourceType"; $sourceType) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.SetAllowsEditing"; 1 ) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.SetCameraCaptureMode"; "Photo" ) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.SetCameraDevice"; "Front" ) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.SetCameraFlashMode"; "Auto" ) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.SetShowsCameraControls"; 1 ) ]
Set Variable [ $r ; Value: MBS( "ImagePicker.Present") ]
Set Variable [ $r ; Value: MBS( "ImagePicker.Dismiss" ) ]
If [ Get(ScriptParameter) ≠ "Cancel" ]
If [ MBS( "ImagePicker.HasMedia" ) ]
New Record/Request
Set Variable [ $Image ; Value: MBS( "ImagePicker.MediaEditedImage"; "PNG") ]
If [ IsEmpty ( $image ) ]
Set Variable [ $Image ; Value: MBS( "ImagePicker.MediaOriginalImage"; "PNG") ]
End If
Set Field [ ImagePicker::Picture ; $image ]
Commit Records/Requests [ With dialog: Off ]
End If
End If