Kakao.Link.sendDefault({
objectType: 'feed',
installTalk : true,
content: {
title: title,
imageUrl: 'http://~~',
link: {
mobileWebUrl: 'http://~~',
webUrl: 'http://~~',
iosExecutionParams: 'url=http://~~',
androidExecutioncParams: 'url=http://~~'
},
},
buttons: [{
title: '앱으로 보기',
link: {
mobileWebUrl: 'http://~~',
webUrl: 'http://~~',
iosExecutionParams: 'url=http://~~',
androidExecutioncParams: 'url=http://~~'
}
}]
})
위와 같이 카카오 링크를 발송했을때, 등록된 android / iOS 앱이 있다면 모바일에서 '앱으로 보기' 선택 시, 파라메터와 함께 앱이 실행됩니다.
"androidExecutioncParams / iosExecutionParams는 Key=Value로 데이터를 전달합니다."
예를들어 하이브리드앱을 실행하고 파라메터로 URL을 받아 띄운다고 하면 아래와 같이 합니다.
android
onResume(), onCreate(…), onStart() 등등 앱이 로드될때 이벤트에서 파라메터를 받을 수 있습니다.
if (intent != null) {
val uri: Uri? = intent.data
if (uri != null) {
Log.d("url", uri.toString())
uri.getQueryParameter("url")?.let {
Log.d("url get", it)
Toast.makeText(baseContext, it, Toast.LENGTH_SHORT).show()
webView.loadUrl(it)
}
}
}
iOS
iOS도 동일하게 앱에서 파라메터 받아서 웹뷰 띄워주는 처리 하셔야합니다.
SceneDelegate.swift
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
if let url = URLContexts.first?.url.absoluteString {
print("url = \(url)")
let paramURL = getQueryStringParameter(url:url, param:"url")!
print("paramURL = \(paramURL)")
Var.myURL = URL(string:paramURL)!
NotificationCenter.default.post(name: NSNotification.Name("TestNotification"), object: nil, userInfo: nil)
}
}
func getQueryStringParameter(url: String, param: String) -> String? {
guard let url = URLComponents(string: url) else { return nil }
return url.queryItems?.first(where: { $0.name == param })?.value
}
Var.swift
import Foundation
class Var{
public static var myURL = URL(string:"https://기본주소.com")
}
ViewController.swift
//
// ViewController.swift
// webTest
//
// Created by kakao on 2021/09/01.
//
import UIKit
import WebKit
@objcMembers class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
// 웹뷰 목록 관리
var webViews = [WKWebView]()
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(didRecieveTestNotification(_:)), name: NSNotification.Name("TestNotification"), object: nil)
let screenSize: CGRect = UIScreen.main.bounds
webView = createWebView(frame: screenSize, configuration: WKWebViewConfiguration())
// Do any additional setup after loading the view.
let myRequest = URLRequest(url: Var.myURL!)
webView.load(myRequest)
}
@objc func didRecieveTestNotification(_ notification: Notification) {
print("Test Notification")
let myRequest = URLRequest(url: Var.myURL!)
webView.load(myRequest)
}
'카카오 REST API & SDK > 카카오톡 공유하기' 카테고리의 다른 글
카카오톡 공유하기, 메시지 커스터마이징 (0) | 2022.10.25 |
---|---|
카카오톡 미리보기 초기화 / OG(Open Graph) 캐시 삭제 (0) | 2022.08.26 |
vue.js에서 JS SDK 카카오톡 공유 사용 (0) | 2021.09.28 |
카카오톡 공유하기(구. 카카오 링크) 사용중 자주 겪는 에러와 문의 (0) | 2021.04.25 |
android + (kakao Javascript SDK)하이브리드앱 예제 - 카카오톡 링크 (0) | 2021.03.21 |
댓글