This guide provides instructions for integrating the Camps API into your Android and iOS applications.
GET /api/camps
Headers:
Authorization: Bearer {user_token}
class CampWebViewActivity : AppCompatActivity() {
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_camp_webview)
webView = findViewById(R.id.webView)
webView.settings.apply {
javaScriptEnabled = true
domStorageEnabled = true
}
// Add JavaScript interface
webView.addJavascriptInterface(MyAthelete360Interface(this), "MyAthelete360")
// Load the camps page with token
val token = "YOUR_USER_TOKEN"
webView.loadUrl("https://your-domain.com/api/camps", mapOf(
"Authorization" to "Bearer $token"
))
}
}
class MyAthelete360Interface(private val context: Context) {
@JavascriptInterface
fun sendEvent(event: String, data: String) {
when (event) {
"openLink" -> {
// Handle registration URL
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(data))
context.startActivity(intent)
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
import UIKit
import WebKit
class CampWebViewController: UIViewController {
private var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Configure WebView
let configuration = WKWebViewConfiguration()
let contentController = WKUserContentController()
contentController.add(self, name: "MyAthelete360")
configuration.userContentController = contentController
webView = WKWebView(frame: view.bounds, configuration: configuration)
webView.navigationDelegate = self
view.addSubview(webView)
// Load the camps page with token
let token = "YOUR_USER_TOKEN"
if let url = URL(string: "https://your-domain.com/api/camps") {
var request = URLRequest(url: url)
request.addValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
webView.load(request)
}
}
}
extension CampWebViewController: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
guard let body = message.body as? [String: Any],
let event = body["event"] as? String else {
return
}
switch event {
case "openLink":
if let urlString = body["data"] as? String,
let url = URL(string: urlString) {
UIApplication.shared.open(url)
}
default:
break
}
}
}