폰갭을 이용할때 그누보드를 이용할 수 있을까요? > 토크

토크

개발과 관련된 어떤 얘기도 괜찮습니다.

폰갭을 이용할때 그누보드를 이용할 수 있을까요? 정보

개발자 폰갭을 이용할때 그누보드를 이용할 수 있을까요?

본문

안녕하세요.


혹시 폰갭을 이용하여 제작할때 그누보드모바일을 이용하신분 계신가요?

이미 홈페이지는 제작되어 있고 이것을 하이브리드앱으로 만들생각입니다.

폰갭으로는 PHP가 안먹히니까 당연히 안될거라 생각하지만

혹시 그누보드를 이용한 다른 방법이 있을까 싶어 질문드립니다.

 

아니면 결국 HTML과 CSS등은 따로 다 작성하고, DB부분은 XML로 이용해서 서버와 통신하는 방법 밖에는 없을까요?

추천
0
비추천
0
  • 복사

댓글 7개

답변감사합니다.
저도 그렇게 생각을 했는데, 앱스토어에서 웹뷰로만 구현된 어플은 통과시켜주지 않는다고 하더라구요.
그래서 불가피하게 폰갭을 이용하려고 합니다.. ㅎ
폰갭은 자스를 쓰는 관계로, DB 와 연동을 위해서 주로 JSON 을 쓰던데,....

좋은 예제는 아래서 보실 수 있습니다.
http://catchmayuri.blogspot.com/2012/01/working-with-json-phonegap-application.html

XML 로 연동하는 경우는, 저는 더 어렵게 느껴지네요.

아마 제가 XMLHttpRequest 에 친숙하지 않아서 그렇게 느껴지는 것 같습니다.

아, 폰갭에서 jQuery 로 .load 만 해도 먹힙니다!!!

$('#content').load('http://www.gnuboard.com/index.php');

저는 워드프레스 사용자라서 그냥 워프+폰갭 플러그인을 사용하는 관계로 (앱프레서라고 있습니다.) 어떤 방식이 가장 좋은지 (그러니까 단순히 jQuery 를 이용한 연동이 좋은지, JSON 으로 한번 감싸서 연동해야 하는지) 자세하게는 모르지만, (아마도 단순히 .load 하면 별의별 문제가 다 발생하겠죠? ㅎㅎㅎ  그렇게 쉬울리가 없잖아!!!)

http://apppresser.com/download/

이거 다운받아서 소스코드를 한번 참고삼아 살펴보셔도 좋으실 듯 합니다.
제가 주로 사용하는 메인 엑티비티 자바 소스 입니다.

package 패키지;

import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.pm.ActivityInfo;
import org.apache.cordova.*;


public class MainActivity extends DroidGap {

	final protected static String homeUrl = "file:///android_asset/www/index.html"; // 홈 주소
	final protected static String listUrl = "file:///android_asset/www/list.html"; // 리스트 주소
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		/*
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		*/
		super.onCreate(savedInstanceState);
		super.loadUrl(homeUrl);
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
	}
	
	// 하드웨어키 제어
	public boolean onKeyDown(int keyCode, KeyEvent event)  {
		
		// 뒤로가기키로 종료
		if( keyCode == KeyEvent.KEYCODE_BACK )  {
			
			new AlertDialog.Builder(this)
			.setIcon(android.R.drawable.ic_dialog_alert)
			.setTitle("종료")
			.setMessage("종료하시겠습니까?")
			.setPositiveButton("Yes", new DialogInterface.OnClickListener()  {
				public void onClick( DialogInterface dialog, int which )  {
					finish();
				}
			}).setNegativeButton( "No", null ).show(); 
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
	
	// 하드웨어 메뉴키 메뉴를 설정한다.
	@Override
    public boolean onCreateOptionsMenu(Menu menu) {
		 menu.add(0, 0, 0, "홈으로");
		 menu.add(0, 1, 0, "리스트");
		 menu.add(0, 2, 0, "다음");
		 menu.add(0, 3, 0, "종료");
		 
		 return super.onCreateOptionsMenu(menu);
    }
	
	// 메뉴에 따른 동작값을 추가한다.
	public boolean onOptionsItemSelected(MenuItem item) {
		
		switch(item.getItemId()) {
	     case 0 :
	    	 Toast toast = Toast.makeText(this, "홈으로", Toast.LENGTH_SHORT); // 토스트 띄우기 
	    	 toast.show(); // 토스트 보여주기
	    	 super.loadUrl(homeUrl);
	      break;
	      
	     case 1 :
	    	 Toast toast_1 = Toast.makeText(this, "리스트", Toast.LENGTH_SHORT); // 토스트 띄우기 
	    	 toast_1.show(); // 토스트 보여주기
	    	 super.loadUrl(listUrl);
	      break;
	     
	     case 2 :
	    	 Toast toast_2 = Toast.makeText(this, "다음", Toast.LENGTH_SHORT); // 토스트 띄우기 
	    	 toast_2.show(); // 토스트 보여주기
	    	 super.loadUrl("http://m.daum.net");
	      break;
	      
	     case 3 :
	    	 new AlertDialog.Builder(this)
				.setIcon(android.R.drawable.ic_dialog_alert)
				.setTitle("종료")
				.setMessage("종료하시겠습니까?")
				.setPositiveButton("Yes", new DialogInterface.OnClickListener()  {
					public void onClick( DialogInterface dialog, int which )  {
						finish();
					}
				}).setNegativeButton( "No", null ).show();
	      break;
	     }
	     return super.onOptionsItemSelected(item);
	}
	
}


저같은 경우 외부 홈페이지와 연결이 필요 한경우 homeUrl를 외부 주소로 변경 하여 사용 하곤 한답니다.
© SIRSOFT
현재 페이지 제일 처음으로