๐ฒ Android/iOS Integration
Android
To add Transak to you Android app add the below code:
MainActivity.Java
Make sure to add your API key and customise using query parameters.
import android.webkit.PermissionRequest
import android.webkit.WebChromeClient
...
transakWidgetView.run {
this.settings.javaScriptEnabled = true
this.settings.domStorageEnabled = true
this.webChromeClient = object : WebChromeClient() {
override fun onPermissionRequest(request: PermissionRequest) {
request.grant(request.resources)
}
}
loadUrl("https://global-stg.transak.com?apiKey=<YOUR_API_KEY>&<QUERY_PARAMETERS>")
}
import android.webkit.PermissionRequest
import android.webkit.WebChromeClient
import android.webkit.WebView
...
AndroidView(
factory = {
WebView(it).apply {
this.layoutParams =
ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
this.settings.javaScriptEnabled = true
this.settings.domStorageEnabled = true
this.webChromeClient = object : WebChromeClient() {
override fun onPermissionRequest(request: PermissionRequest) {
request.grant(request.resources)
}
}
}
},
update = {
it.loadUrl(
"https://global-stg.transak.com?apiKey=<YOUR_API_KEY>&<QUERY_PARAMETERS>"
)
}
)
import android.webkit.WebView;
...
webView = (WebView) findViewById(R.id.transakWidgetView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(PermissionRequest request) {
super.onPermissionRequest(request);
request.grant(request.getResources());
}
});
webView.loadUrl("https://global-stg.transak.com?apiKey=<YOUR_API_KEY>&<QUERY_PARAMETERS>");
Activity_main.xml
<WebView xmlns:android="<http://schemas.android.com/apk/res/android>"
android:id="@+id/transakWidgetView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<WebView xmlns:android="<http://schemas.android.com/apk/res/android>"
android:id="@+id/transakWidgetView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Provide permission in AndroidManifest.XML
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
iOS
You can add the Transak widget to your iOS app using the below code.
Make sure to add your API key and customise using query parameters.
import SwiftUI
import WebKit
struct WebView: UIViewRepresentable {
let url: URL
func makeUIView(context: Context) -> WKWebView {
let webview = WKWebView()
return webview
}
func updateUIView(_ uiView: WKWebView, context: Context) {
let request = URLRequest(url: url)
uiView.load(request)
}
}
struct ContentView: View {
var body: some View {
WebView(url: URL(string: "https://global-stg.transak.com?apiKey=<YOUR_API_KEY>&<QUERY_PARAMETERS>")!)
.edgesIgnoringSafeArea(.all)
.padding(10)
}
}
import UIKit
import WebKit
class WebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
webView.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string: "https://global-stg.transak.com?apiKey=<YOUR_API_KEY>&<QUERY_PARAMETERS>")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
if let serverTrust = challenge.protectionSpace.serverTrust {
completionHandler(.useCredential, URLCredential(trust: serverTrust))
}
}
}
Provide permission in Info.plist
<key>NSCameraUsageDescription</key>
<string>Permission required for Camera Access.</string>
Flutter
As of today, we do not provide support for the Flutter framework.
Updated about 5 hours ago