웹뷰에서 자바스크립트 로드 시, 메인 thread 에서 호출을 막을 때가 있다.

아래와 같이 사용하면 해결 가능하다.




//전역에 선언

WebView webview = findViewById(R.id.webview);


//post
webview.post(new Runnable() {
@TargetApi(19)
@Override
public void run() {
webview.evaluateJavascript(script,

new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.
w("DEBUG", "evaluateJavascript: " + value);
}
})
;
}
})
;


'안드로이드 > TIP' 카테고리의 다른 글

특정 퍼미션만 제거해보자!  (0) 2019.02.21
안드로이드 3.3.1 패브릭 오류  (0) 2019.02.18
FileProvider  (0) 2018.09.06
Screen Orientation (화면 방향)  (0) 2018.07.26
Mixing Version  (0) 2018.06.18
Posted by 자바리즘
,

나의 경우는 이미 개발을 잘 하고 있던 맥북에서 인증서 키가 맞지 않아서 Provisioning 에러가 발생한 경우이다.

아마 여러 프로젝트를 돌아다니다가 에러가 발생해서 인증서 뒤적거리다가 발생한 문제로 보이는데... (-_-;; )

계속 삽질하다 포기하고, 다시 마음 잡고 했던 되었다.


출처의 사이트에서 참고 받아서 작성을 하였다.


내 개인키가 없어서 빌드가 안되는 경우 시도하는 방법!

1. 첫째, PC에서 Certificates를 삭제합니다.

“키체인 접근” (Key Access) 을 실행합니다. 좌측의 “로그인”을 선택합니다. 

iPhone Developer 혹은 iPhone Distribution을 삭제합니다! (자신이 없으시면, iPhone Developer부터 실습해 보세요.)


2. 둘째, 이전 certificates를 revoke 합니다.
개발자 웹 “Provisioning Portal”에 접근하여, 좌측 “Certificates”메뉴를 선택한후, 탭 메뉴에서 Development / Distribution 에 들어가셔서 “Revoke”를 선택합니다. 

내것만 revoke 하세요. 남의 것 건드리면 안됩니다. 특히 Distribution 은 실제 배포용이므로 이미 사용하고 있었다면 이 인증서는 건드리지 않는게 좋습니다 ^^;


3. 셋째, 인증서 요청파일을 생성합니다.
맥에 다시 돌아와서, “키체인 접근”에서 “키체인 접근”메뉴를 선택합니다. 

“인증서 지원” – “인증기관에서 인증서 요청..” 을 선택합니다.
이메일 주소와 이름을 적으시고, “요청 항목”에서 “[o] 디스크에 저장됨”을 선택합니다.
CertificateSigningRequest.certSigningRequest” 파일을 잘 저장해 놓습니다. (인증서 요청파일입니다.)

백업 해 놓으세요.


4. 넷째, Provisioning Portal에서 인증서를 요청합니다
Provisioning Portal에 다시 가셔서 파일을 업로드해서 “Certificate”을 생성합니다.


5. 다섯째, 새로운 인증서를 다운로드 및 적용합니다.
브라우저를 리플래쉬 하면, 인증서 리스트 우측 끝에 다운로드 버튼이 생깁니다. 다운로드후 더블클릭으로 실행하시면 됩니다. 필요에 따라, “WWDR intermediate certificate”을 다운로드 받아야할 수도 있습니다.(인증서 리스트 하단에 있습니다.)


6. 여섯째, 새로운 인증서로 프로비저닝을 수정합니다.
Provisioning Portal에서 좌측 메뉴중 Provisioning 을 선택합니다. 


Provisioning Profile 리스트에서 우측의 Edit-Modify를 선택합니다. 들어가셔서 Profile name 영역 한번 클릭하면, submit 버튼이 활성화 됩니다. Certificate 항목이 새로 생성한 인증서 이름이 나왔는지 확인한 후, submit 합니다.


7. 일곱째, Xcode의 Organizer에서 확인합니다.
새로운 인증서가 들어가 있을 겁니다. 성공입니다.!



출처 : http://jewonagency.com/%EB%A7%A5osx%EB%A5%BC-%ED%8F%AC%EB%A7%B7%ED%95%98%EA%B1%B0%EB%82%98-%EA%B5%90%EC%B2%B4%ED%95%98%EC%97%AC-xcode%EC%97%90%EC%84%9C-build%EA%B0%80-%EC%95%88%EB%90%A0%EA%B2%BD%EC%9A%B0/

'아이폰' 카테고리의 다른 글

WKWebView 에서 내부 리소스 파일 로드하기  (0) 2019.05.13
UIDocumentInteractionController  (0) 2019.05.13
맥북 호스트 변경  (0) 2019.01.08
스토리 보드에 라벨을 올려보자  (0) 2018.09.14
xCode 프로젝트 생성  (0) 2018.09.14
Posted by 자바리즘
,

스토리 보드에 라벨을 올려보자




1. 아래화면은 ViewController 이다. 보시다시피 아무것도 만들지 않았기 때문에 빈 화면이다.



2. 이제 라벨을 올려보자.

   오른쪽 하단이 컴포넌트 목록들이 있는 화면이다. 화살표로 된 곳을 보면 라벨이 있다.

   선택하고, 뷰컨트롤러로 끌어놔 보자.




3. 라벨을 올려보았다.



4. 라벨을 화면중앙으로 정렬시켜보자.

    align 버튼으로 Constraints (제약사항) 을 추가해보자.

    가로와 세로에 대한 constraint 를 선택하고 Add 를 시켜보자.

    아래와 같이 가운데 정렬이 된다.


Posted by 자바리즘
,

엑스코드 에서 프로젝트를 생성해보자!



1. 새 프로젝트를 생성하면 다음과 같은 화면이 나온다.

  기본으로는 Single View App 을 선택한다. (아직은 복잡한 뷰를 구성하는것이 아니기 때문에..)

  Next 버튼 클릭 //




2. 프로젝트 이름을 설정하고, 패키지 명도 적어주자.

   Next 버튼 클릭 //



3. 프로젝트를 저장할 경로를 설정하고 Create 버튼을 누르면 프로젝트 생성 완료!!



이제 한걸음 띠었다.

Posted by 자바리즘
,

FileProvider

안드로이드/TIP 2018. 9. 6. 15:48

안드로이드 7.0 (Nougat) 이상 버전에서 file:// 프로토콜을 사용할 경우


FileUriExposedException 이 발생된다.



처음 이러한 사항을 문서로 읽었을 때는 와닿지 않았다.

그러나...

카메라 사진을 얻기 위해 기존 코드를 사용했더니 여지 없이 앱이 크래시 되었다!


해결방법은 FileProvider 를 사용하는 것이다.


참고문서 : https://developer.android.com/reference/android/support/v4/content/FileProvider




FileProvider 를 사용하기 위해서는 몇가지 설정이 필요하다.


1. Manifest 설정


프로바이더 설정이 필요하다. Application 태그 안에 두면 된다.





2. XML 파일 생성


xml 파일 내용


여러 설정들이 있는데, 외장메모리의 경로를 가져오기 위해 위와같이 설정하였다.



xml 파일 위치



3. Java Code


아래와 같이 FileProvider 를 이용하여, URI 를 가져와야 한다.

file 파라미터는 File 객체이다.

String packageName = getApplicationContext().getPackageName();
Uri uri = FileProvider.getUriForFile(getApplicationContext(),
packageName + ".provider", file);


'안드로이드 > TIP' 카테고리의 다른 글

안드로이드 3.3.1 패브릭 오류  (0) 2019.02.18
웹뷰 비동기 로직 호출  (0) 2019.01.04
Screen Orientation (화면 방향)  (0) 2018.07.26
Mixing Version  (0) 2018.06.18
keystore 정보 가져오기  (0) 2018.05.04
Posted by 자바리즘
,

화면방향 

동작 

 unspecified, user

 가로(반전 포함), 세로(반전 포함) 모두 변경됨

 userLandscape

 가로 방향(반전 포함), 

 단! 회전 잠금 모드라면 한 방향의 가로모드만 지원

 userPortrait

 세로 방향(반전 포함), 

 단! 회전 잠금 모드라면 한 방향의 세로모드만 지원

 fullUser

 가로(반전 포함), 세로(반전 포함) 모두 변경됨

 sensor, fullSensor

 모든 방향으로 레이아웃이 변경됨. 회전 잠금 모드 무시

 sensorPortrait

 세로 방향 (반전 포함). 회전 잠금 모드에서도 반전이 된다. 

 sensorLandscape

 가로 방향 (반전 포함). 회전 잠금 모드에서도 반전이 된다.



가로, 또는 세로 모드로 고정할 때 반전을 주고 싶다면 sensorXxxxx 를 사용하는 것이 좋다.

sensor 는 회전 잠금 모드에서도 동작 한다.


'안드로이드 > TIP' 카테고리의 다른 글

웹뷰 비동기 로직 호출  (0) 2019.01.04
FileProvider  (0) 2018.09.06
Mixing Version  (0) 2018.06.18
keystore 정보 가져오기  (0) 2018.05.04
Gradle Permission denied  (0) 2018.04.12
Posted by 자바리즘
,

Mixing Version

안드로이드/TIP 2018. 6. 18. 10:52

gradle import 를 하다보면 빨간색 밑줄이 생기면서 Mixing Version 어쩌고~저쩌고가 생긴다.



implementation 하다보면 안드로이드 support 라이브러리 버전 충돌이 날때가 종종 있다.


./gradlew -q dependencies app:dependencies --configuration compile


이 명령어로 버전 충돌이 어디서 나는지 체크 해보고 변경 하면 된다.





주로 다른 프로젝트나 구글의 라이브러리를 참조하면서 버전충돌이 발생한다.


아주 잡기 희안한 그런 버그인데...


부디 잘 잡기를 바라며...

'안드로이드 > TIP' 카테고리의 다른 글

FileProvider  (0) 2018.09.06
Screen Orientation (화면 방향)  (0) 2018.07.26
keystore 정보 가져오기  (0) 2018.05.04
Gradle Permission denied  (0) 2018.04.12
Aapt2Exception -part 2  (0) 2018.03.20
Posted by 자바리즘
,