2017년 2월 8일 수요일

가우스 전자를 보고 플랜Z를 생각해봤다.

뭐가 되었든 플랜z가 되려면 빚이 없어야 할것 같았다.
언제든지 훌훌 털고 일어나서 내방에서 먹고자거 숨쉬고 하는 비용을 최소로 만들 수 있는 상황일때 마음의 자유를 느꼈었다.

2017년 2월 4일 토요일

웹개발 한글파라미터 해결

보통 익스플로러에서 글자가 깨진다는 이슈로 접하게 된다.

별거 아니고 'GET방식 한글 파라미터'가 익스에선 깨지기 때문에 파라미터를 꼭 인코딩해서 보내야 한다.

javascript에서 예시.
...
window.location.href = "somepage.php" 
    + "?param1=" + encodeURIComponent(param1)
    + "&param2="+ encodeURIComponent(param2)
...
    
cs
encodeURIComponent 함수를 쓴 이유는 파라미터에 '&' 문자열이 포함될 경우 알아서 잘 처리해준다.


php 예시.
$pageUrl = "./somepage.php";
$pageUrl .= ("?param1=".urlencode($param1));
$pageUrl .= ("?param2=".urlencode($param2));
cs
가급적 꼭 파라미터별로 urlencode함수를 호출하는 것을 권한다.
상대주소인 경우 특히.

파라미터를 받아올때는 별다른 작업이 디코딩을 할 필요는 없다.
$param1 = $_REQUEST["param1"];
$param2 = $_REQUEST["param2"];
cs

꼭 작업중일때 이를 염두하여 다 개발해놓고 소스를 전부 뒤져가면서 urlencode함수와 encodeURIComponent함수를 여기저기 호출하러 다니지 말자.

나중에 한번에 작업하다보면 내가 PHP를 하고 있는지 javascript를 하고 있는지 햇갈리다가 꼭 에러를 내고 야근을 한다.



Android 원하는 페이스북 페이지로 연결.

별거 없어서 그냥 소스로만 남긴다.
내 경우에는 facebookNumericID와 facebookID의 차이를 몰라서, 조금 해맸다.

아래의 두 페이지를 참조함.
http://hashcode.co.kr/questions/1263/안드로이드-앱에서-페이스북-페이지-띄우는법
http://stackoverflow.com/questions/4810803/open-facebook-page-from-android-app
https://alinmiu.com/2016/01/16/launch-facebook-page-in-facebook-app-on-android/

혹시 사용하실 분은 꼭 주석을 읽고 사용하길 권장한다.
facebookNumericID가 뭔지 모르고 그냥 facebookID를 넣으면 나와 같은 시간을 허비하게 될것이다.

누군가의 야근을 줄였기를...

/**
 *
 * @param context
 * @param facebookID
 * @param facebookNumericID API를 통해서 가져온 Facebook ID 번호.(findmyfbid.com에서 FacebookID번호를 알 수 있다.)
 */
public static void goToFacebook(Context context, String facebookID, String facebookNumericID) {
    String facebookUrl = null;
    //페이스북 앱 유무.
    boolean isExistFBApp = false;
    try {
        PackageManager packageManager = context.getPackageManager();
        packageManager.getPackageInfo("com.facebook.katana"0);
        isExistFBApp = true;
    } catch (PackageManager.NameNotFoundException e) {
        e.getStackTrace();
        isExistFBApp = false;
    }
    //페이스북 Uri
    Uri fbUri = Uri.parse("https://www.facebook.com/" + facebookID);
    if(isExistFBApp){
        fbUri = Uri.parse("fb://page/" + facebookNumericID);
    }
    //실행
    Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
    facebookIntent.setData(fbUri);
    context.startActivity(facebookIntent);
}
cs


리스트