안드로이드 + 자바로 했습니다.
튜터리얼은 이거구요: https://developer.android.com/guide/webapps/webview?hl=ko
제가만들 앱은 웹페이지 하나만 달랑 있는것입니다.
이걸로 안드로이드기능도 쓰고 웹페이지로 컨텐츠 개발도하려구요
그럴려면 둘이 통신을 해야하는데 이방법의 튜터리얼을 찾았습니다.
주의점 몇개만 남겨둡니다.
첫번째
웹에서 호출할 함수는 이렇게 쓰는데요
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
@JavascriptInterfac <-- 이거 들어가야합니다.
두번째
addJavascriptInterface 함수는 loadUrl 전에 호출합니다.
왠지 페이지 로드하고 add 해야할꺼 같은데 그렇치 않습니다.
세번째
android-17 이상해서 하라는데 이게 문제될 사람은 잘 없을꺼 같군요
추가로 App 에서 web 함수를 호출하려면
webview.evaluateJavascript("abc(`def`);"
, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
Log.d("myapp", "onReceiveValue: " + s);
}
});
이런식으로 스트링 하나 리턴 받는 코드구요
자바스크립트 쪽은
<script type="text/javascript">
function abc(v) {
return "abc" + v;
}
</script>
이런식으로 찼습니다. 리턴값을 멋지게 오브젝트로 받을까 했는데...