[안드로이드 웹뷰] 웹에서 네이티브앱의 액티비티 호출하기
출처: http://hamait.tistory.com/371 [HAMA 블로그]
첫째. 웹과 상호통신을 하기위해 WebViewInterface 클래스 만들기
public class WebViewInterface {
private WebView mWebView;
private Activity mContext;
private final Handler handler = new Handler();
public WebViewInterface(Activity activity, WebView view) {
mWebView = view;
mContext = activity;
}
@JavascriptInterface
public void callSettingsActivity(final String message) {
Toast.makeText(mContext, "settings in ...", Toast.LENGTH_LONG).show();
Intent intent = new Intent(mContext, SettingsActivity.class);
mContext.startActivity(intent);
}
}
- 웹에서 callSettingsActivity 함수를 호출하면 인텐트를 통해 SettingsActivity 를 시작한다.
둘째. 웹뷰와 인터페이스클래스와 연결해주기
mWebViewInterface = new WebViewInterface(MainActivity.this, webView);
webView.addJavascriptInterface(mWebViewInterface, "android");
- 생성자로 this 넘기고 webView 를 넘겨준다.
- webView 에 인터페이스 객체의 alias 로 "android" 를 설정한다.
셋째. 웹페이지 상에 자바스크립트 함수 만들기
- TEST.HTML -
function callActivity1(){
if(window.android){
console.info("android");
window.android.callSettingsActivity(number.value);
}
else{
console.info("web");
document.form.submit();
}
}
}
- callActivity 함수가 호출되면 "android" 가 정의되있으면 네이티브앱쪽으로 호출하고, 아니면 웹서버로 호
출하는 코드
출처: http://hamait.tistory.com/371 [HAMA 블로그]
'개발 > APP' 카테고리의 다른 글
안드로이드 회전 막기 (0) | 2018.12.10 |
---|---|
간단한 웹뷰 컴포넌트의 이해와 최적화 (0) | 2018.12.10 |
안드로이드 AlertDialog 로 alert, confirm 구현 (0) | 2018.11.22 |
안드로이드 MIUI 보안의 자동시작 (1) | 2018.11.22 |
안드로이드 전화 수발신 이력 발생에 따른 옵저버 처리 (0) | 2018.11.22 |