전체 글

· ETC/Synology
DSM 패키지 센터 커뮤니티 소스 리스트 http://packages.synocommunity.com/ http://synology.sysco.ch/ http://www.cphub.net http://syno.dierkse.nl/ 인터넷에 떠돌아다니는 리스트 중 현재는 유효하지 않은 링크는 삭제했습니다 이 게시글의 패키지는 ARM 코어가 탑재된 보급형 Synology 기기에서도 사용이 가능합니다. 설치방법 Perl 패키지가 필요합니다. 시놀로지 공식 패키지센터에서 설치합니다. 패키지센터 우측 상단의 설정 버튼을 누르고, 패키지 소스 탭에 위 리스트를 추가합니다. ipkg만 설치하실거면 맨 아래 cphub 링크만 추가하셔도 됩니다. 패키지센터를 종료 후 다시 엽니다. 검색창에 ipkg를 검색 후 Easy ..
· ETC/Ubuntu
카카오 미러서버 - apt sudo sed -i -re 's/([a-z]{2}.)?archive.ubuntu.com|security.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list sudo apt update sudo apt upgrade -y 카카오 미러서버 - pip mkdir ~/.pip echo "[global] index-url=http://ftp.daumkakao.com/pypi/simple trusted-host=ftp.daumkakao.com" >> ~/.pip/pip.conf pip3 install --upgrade pip zsh 및 oh-my-zsh 설치 sudo apt install -y zsh curl git sh -c "$(curl -..
iOS 에서의 Javascript Interface Bridge는 단방향, JS -> Native로밖에 값을 전달하지 못한다. 따라서 js에 setValue() 등의 함수를 사용해야 한다.. 그러나 window.webkit.messageHandler.foo.postMessage(args) 를 호출하고, 네이티브에서 evalJavascript로 setFooValue(bar) 함수를 호출해 밸류를 지정해준다 한들, 완성된 js코드를 보는 후임 개발자 입장에서 코드가 쉽게 눈에 들어오지 않을 것이고, 예쁘지도 않다. 또 리턴받아야 하는 함수가 여러 개인 경우 setValue() 함수를 여러번 생성해야 하며, Android JavascriptInterface Bridge와 다른 방식으로 사용해야 한다. 안드로이..
카톡로그인 인텐트를 아래와 같이 처리해줬다. @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("intent:")) { try { Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); Intent existPackage = getPackageManager().getLaunchIntentForPackage(intent.getPackage()); if (existPackage!=null) { startActivity(intent); } else { Intent marketIntent = new Intent(Intent.ACTI..
MainActivity.java private long backKeyPressedTime = 0; private Toast toast; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { // 웹뷰 History상 이전 페이지가 있을 경우 if(mWebView.canGoBack()){ mWebView.goBack(); // 뒤로가기 return true; } // 없을 경우 앱 종료 전 Toast로 물어보기 else{ // 토스트메세지 출력 if (System.currentTimeMillis() > backKeyPressedTime + 2000) { backKeyP..
Activity에서 처리하는 경우 activity_main.xml MainActivity.java WebView mWebView; WebSettings mWebSettings; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.mWebview); // 웹뷰 선언 mWebSettings = mWebView.getSettings(); mWebView.setWebChromeClient(new WebChromeClient()); // 크롬클라이언트 사용 mWebVi..
이전 포스팅 : 안드로이드 프래그먼트 활용하기 안드로이드 프래그먼트 활용하기 MainActivity.java public class MainActivity extends AppCompatActivity { private FragmentManager fragmentManager; private Fragment_Main fragment_main; private Fragment_MyPage fragment_my_page; privat.. jyspw.tistory.com 사전 작업 1. res 폴더 우클릭 -> New -> Android Resources Directory -> menu 폴더 생성 2. res/drawable -> New -> Vector Asset -> 사용할 Clipart 이미지 생성 Mai..
MainActivity.java public class MainActivity extends AppCompatActivity { private FragmentManager fragmentManager; private Fragment_Main fragment_main; private Fragment_MyPage fragment_my_page; private FragmentTransaction fragmentTransaction; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fragmentManager = ..
Splash 화면 구현 경로 : res/drawable/splash.xml (생성) Splash Theme 추가 경로 : res/values/themes.xml ,res/values-night/themes.xml Android Manifest 수정 AndroidManifest.xml Main Activity 수정 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme_앱이름); // 앱 기본 테마로 변경 super.onCreate(savedInstanceState); setContentView(R.layout.a..
타이틀 바 없애기 경로 : res/values/themes.xml , res/values-night/themes.xml 상태 바 없애기 경로 : MainActivity.java import android.os.Build; import android.view.WindowInsets; import android.view.WindowInsetsController; import android.view.WindowManager; ... public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 전..
Jade Choe
Jade's Hello, World!