관리 메뉴

HAMA 블로그

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

안드로이드

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

[하마] 이승현 (wowlsh93@gmail.com) 2015. 8. 21. 17:49


첫째. 웹과 상호통신을 하기위해 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" 가 정의되있으면 네이티브앱쪽으로 호출하고, 아니면 웹서버로 호

   출하는 코드 


Comments