Development record of developer who study hard everyday.

, ,

안드로이드 whatsApp(왓츠앱) 메시지 인텐트 스키마로 보내기

 안드로이드 whatsApp 메시지 보내기


회사에서 웹앱 작업을 하는데 서버개발자가 안드로이드만 url로 왓츠앱 메시지 보내기가 안된다고한다. ㅜㅜ

https://api.whatsapp.com/send?phone=821012345678&text=https://okcar-user.appdev.co.kr/redirect/metaTag?rentalNo=8%20%20%20%20%20%20%20%20&preview_url=true

uri은 대략 위와 같은 형식이였다.

검색을 해보니까 안드로이드에서만 저 url로 왓츠앱 메시지 보내기가 안된다고한다.

ios는 가능한데;; ㅜㅜ

안드로이드는 저 uri를 인텐트로 띄워줘야한다고 한다.

val whatsAppPackageName = "com.whatsapp"

try {

val pm = packageManager;
pm.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES)

val whatsAppIntent = Intent(Intent.ACTION_VIEW)
whatsAppIntent.data = uri
startActivity(whatsAppIntent)

} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=$whatsAppPackageName")
)
)
} catch (e: ActivityNotFoundException) {
e.printStackTrace()
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=$whatsAppPackageName")
)
)
}

방법은 위와 같다.

복잡한건 없어서 설명할 건 따로 없을 것 같고...

packageManager로 왓츠앱의 패키지명으로 정보를 가져옮으로써 현재 디바이스에 왓츠앱이 설치되어있는지 확인한다 라는 것만 알고 있으면 될거 같다.

그리고 Android11부터 특정 앱 설치 유무를 판단할 때 

안드로이드 매니페스트 파일에서 

<queries>
<package android:name="com.whatsapp"/>
</queries>

위와같이 태그를 추가해주어야한다.


끝!~


Share:
Location: 대한민국

댓글 없음:

댓글 쓰기