diff --git a/README.md b/README.md index 36ad29f..8b341cb 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,14 @@ messenger?.setPushRegistrationToken(token: token) Prerequisite: The application should be connected to the notifications platform, enabled for receiving notifications and obtaining tokens. + +## Privacy + +In order to make the file upload and download fully work, make sure to add these permissions with appropriate messages in your `Info.plist` file: +- Privacy - Camera Usage Description +- Privacy - Microphone Usage Description +- Privacy - Photo Library Additions Usage Description + ## Versioning We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/deskpro/messenger-sdk-ios/tags). diff --git a/Sources/Deskpro.swift b/Sources/Deskpro.swift index d6d9e80..54bc1b9 100644 --- a/Sources/Deskpro.swift +++ b/Sources/Deskpro.swift @@ -148,9 +148,23 @@ import UIKit /// - Returns: A [PresentBuilder](x-source-tag://PresentBuilder) instance to start building presentation paths. /// @objc public final func present() -> PresentBuilder { - let url = messengerConfig.appUrl//.appending(messengerConfig.appId) - //return PresentBuilder(url: url, containingViewController: containingViewController) - return PresentBuilder(url: url, appId: messengerConfig.appId, coordinator: coordinator) + let url = buildUrl(baseUrl: messengerConfig.appUrl, appId: messengerConfig.appId) + return PresentBuilder(url: url ?? "", appId: messengerConfig.appId, coordinator: coordinator) + } + + func buildUrl(baseUrl: String, appId: String) -> String? { + let platformData = ["platform": "IOS"] + + guard let platformJsonData = try? JSONSerialization.data(withJSONObject: platformData, options: []), + let platformJsonString = String(data: platformJsonData, encoding: .utf8), + let encodedPlatform = platformJsonString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else { + return nil + } + + let formattedBaseUrl = baseUrl.trimmingCharacters(in: CharacterSet(charactersIn: "/")) + let formattedAppId = "/" + appId.trimmingCharacters(in: CharacterSet(charactersIn: "/")) + + return "\(formattedBaseUrl)\(formattedAppId)/\(encodedPlatform)" } /// Closes the chat view presented by the DeskPro SDK.