개발모음집

JavaScript에서 안드로이드로 값넘기기 본문

Android

JavaScript에서 안드로이드로 값넘기기

void 2018. 6. 8. 03:26

구현할 기능 설명


안드로이드 webview에서 php파일로 String값을 넘기는 기능구현


구현 방법



final class MyJavaScriptInterface {
private final Handler handler = new Handler();

private Context context;
private GlobalApplication app;

MyJavaScriptInterface(Context context) {
this.context = context;
app = (GlobalApplication) context.getApplicationContext();
}

/*
* 자바스크립트로 통신하기 위해 사용하는 인터페이스
* 참고 URL : http://come2misun.tistory.com/274
*/
@JavascriptInterface
public void callAndroid(final String str) {
handler.post(new Runnable() {
public void run() {
// Log.e("context", str);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(str));
context.startActivity(intent);
}
});
}


@JavascriptInterface
public String androidToJs() {
handler.post(new Runnable() {
public void run() {
Log.e("androidToJs", app.getUserNo());
}
});
return "";//app.getUserNo();
}
}


1. 자바스크립트에서 안드로이드로 값넘기기


echo '<script>
window.myJs.callAndroid(' . $url . ');
</script>';



+++

자바스크립트에서 php로 값넘기기


1. 직접적으로 넣는 방법

실패


$userNo = '<script>var userNo = window.myJs.androidToJs(); document.write(userNo);</script>';

출처: 말은 쉽지, 코드를 보여줘 


echo로 찍으니 내가 원하는 String이 출력되었다.


하지만 $userNo를 DB에 넣으려하니 에러가 발생하였다.


알고보니 $userNo 에


<script>var userNo = window.myJs.androidToJs(); document.write(userNo);</script>