본문 바로가기
개발/APP

[안드로이드 웹뷰] 웹에서 네이티브앱의 액티비티 호출하기

by 카루딘 2018. 12. 10.
반응형



[안드로이드 웹뷰] 웹에서 네이티브앱의 액티비티 호출하기

출처: 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 블로그]

반응형