Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 카카오톡
- TypeScript
- Route53
- 알려줌
- swift
- JavaScript
- 네이티브
- 페이스북
- php
- cors
- S3
- fanzeel
- nextjs
- ios
- 감사일기
- NeXT
- Android
- angular4
- node
- 웹뷰
- Elastic Beanstalk
- AWS
- 도메인
- beanstalk
- react
- angular
- https
- node.js
- 안드로이드
- hybrid
Archives
- Today
- Total
쪼렙 as! 풀스택
Android Webview 에서 javascript window 객체에 접근해, 네이티브 기능 실행하기 본문
개발 일지/iOS & Android
Android Webview 에서 javascript window 객체에 접근해, 네이티브 기능 실행하기
코코앱 2021. 1. 31. 10:46안드로이드 웹뷰에서,
window 객체를 통해
안드로이드 네이티브 함수를 호출 할 수 있다.
MainActivity.kt ...
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView = findViewById<WebView>(R.id.webview)
val settings = webView.settings;
settings.javaScriptEnabled = true
settings.javaScriptCanOpenWindowsAutomatically = true
settings.allowContentAccess = true
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
webView.loadUrl("https://MY_URL.COM")
webView.addJavascriptInterface(MyInterface(this), "myAndroidInterface")
}
class MyInterface(private val mContext: Context) {
@JavascriptInterface
fun toast() {
Toast.makeText( mContext, "토ㅅ트 띄워라!!!", Toast.LENGTH_LONG).show()
}
}
}
이렇게 하면, window.myAndroidInterface 를 이용해서, 안드로이드 네이티브 기능을 호출 할 수 있다.
아래는 웹 HTML 에서, 안드로이드의 Native Toast 를 호출하는 예시이다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>웹뷰</title>
<script>
function clickButton() { window.myAndroidInterface.toast(); }
</script>
</head>
<body>
<h1>웹뷰</h1>
<button onclick="clickButton()" >클릭 버튼!!!!!</button>
</body>
</html>
iOS 는 window 객체에 직접 접근할 수 있는 방법은 모르겟고 (없는거 같다.)
MessageHandler 를 이용해야 하는것 같다.
그에 대한 내용은 아래에 정리해뒀다.
iOS 하이브리드앱, Javascript 로 웹뷰에 메세지 보내기 (네이티브 코드 사용할 수 있도록)
'개발 일지 > iOS & Android' 카테고리의 다른 글
Swift 5.4 - 키보드 올라올라올 때 애니메이션 정확히 동일한 curve 알기. (1) | 2021.06.01 |
---|---|
iOS - Storyboard 에서 UILabel 에 Padding 설정하기 (0) | 2020.03.19 |
iOS - XIB 에서 가져온 TableViewCell의 Dynamic Height (self-sizing height) (0) | 2020.03.16 |
iOS 하이브리드앱, Javascript 로 웹뷰에 메세지 보내기 (네이티브 코드 사용할 수 있도록) (0) | 2019.12.28 |
iOS13 - 카카오 로그인, 페이스북 로그인등 application: openURL() 이 안불러질때;; (0) | 2019.12.05 |
Comments