URL 구성표 사용 LINE 앱에서 iOS(Swift) 및 Android(Java)
예를 들어 LINE에서 메시지를 보내거나 카메라를 시작할 수 있습니다. LINE MESSAGE API의 사양에 대해서는 여기 를 참고해 주십시오.
환경
Mac: Sierra 10.12.6
Swift 4.0
Xcode 9.2
Android Studio 2.3
전제
맞춤 URL 구성표 및 유니버설 링크 정보
LINE의 Message API에 대한 공식 문서 에 기재되어 있는 대로, 다른 어플리케이션으로부터 LINE을 열려면 지정의 URL를 사용합니다만, line://인가 * h tps : // / 네. 메/R/ *의 2가지 있습니다. 전자는 맞춤 URL 구성표를 사용하고 후자는 유니버설 링크를 사용합니다.
어느 URL에서도 이미 특정 앱(이번에는 LINE)이 설치되어 있는 경우는, 앱이 열리는 거동은 변하지 않지만, 설치가 끝난 경우에는 거동이 바뀝니다.
- line://▶ 아무것도 하지 않는지, 에러 페이지가 열립니다
- https://line.me/R/ ▶ 웹 브라우저가 열리고 LINE 앱 다운로드를 요청하는 페이지가 열립니다.
그래서, line://와 같은 커스텀 URL 스킴을 이용하는 경우는, 열 수 없었을 때, 즉는 어플리를 인스톨 하고 있지 않을 때의 거동을 설정하지 않으면, 유저에게 「어라? 아무것도 일어나지 않는다」같다 될 수 있습니다.
LINE@ 링크
내 계정에 친구를 추가하려면 계정의 URL을 알아야 합니다. 여기의 ③ 친구 추가 URL에 설명이 실려 있습니다.
간단하게 쓰면, 메뉴의 친구 화면 ▶URL을 공유,로 할 수 있습니다.
iOS 구현 방법
Info.plist에 Scheme 등록
Info.plist에
LSApplicationQueriesSchemes
라는 키로 Type을 Array로 하고, 거기에 항목을 추가하고, Type을 String으로 value를 line으로 합니다.이것을 설정하지 않으면 지정한 앱이 설치되어도 오류가 발생합니다. 이는 Apple이 사용자의 다른 앱 정보를 개인정보 보호 대상으로 했기 때문입니다. 따라서 앱과 관계없는 다른 앱의 설치 정보를 확인할 수 없습니다.
코드
아래와 같이 됩니다.
구현상 주의하는 것은, url을 여는 메소드 openURL이 iOS10이상에서 비추천이 되었기 때문에, 10이후에서는 open을 사용합니다.
또한, URL 스킴을 이용하는 경우는, 인스톨 완료가 아닌 경우의 처리도 쓰도록 합시다.
// let urlscheme = "https://line.me/R/ti/p/hoghoge" // Universal links
let urlscheme = "line://ti/p/hoghoge" //カスタムURLスキーム
// URL作成
guard let url = URL(string: urlscheme) else {
return
}
if UIApplication.shared.canOpenURL(url) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: { (succes) in
})
}else{
UIApplication.shared.openURL(url)
}
}else {
// LINEアプリが無い場合
let alertController = UIAlertController(title: "エラー",
message: "LINEがインストールされていません",
preferredStyle: UIAlertControllerStyle.alert)
alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default))
present(alertController,animated: true,completion: nil)
Android 구현 방법
코드(https/http의 경우)
단순히 URI를 두드리는 것만으로 가능합니다.
이번에는 textView를 터치하면 열리게 되었습니다.
String uri = "https://line.me.R/"
textView.setAutoLinkMask(Linkify.ALL);
textView.setText(uri);
코드 (스키마 이름을 사용하는 경우)
Intent를 사용합니다.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("line://"));startActivity(intent);
Android는 Manifest 파일을 괴롭히지 않아도 괜찮습니다. (자작으로 맞춤 URL을 만드는 경우 놀아야합니다.)
참고
Reference
이 문제에 관하여(URL 구성표 사용 LINE 앱에서 iOS(Swift) 및 Android(Java)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zakiyamaaaaa/items/96c6fb8ee5a93c963bbc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)