전체 글 14

webview - window.open() 처리

WebChromeClient를 상속받은 클래스를 생성하여 아래 펑션을 작성한다. override fun onCreateWindow(view: WebView?, isDialog: Boolean, isUserGesture: Boolean, resultMsg: Message?): Boolean { val newWebView = WebView(mContext) newWebView.settings.javaScriptEnabled = true var dialog = Dialog(view?.context) dialog.setContentView(newWebView) val params: ViewGroup.LayoutParams = dialog.window.attributes params.width = ViewGrou..

개발/Android 2021.06.02

IOS 웹뷰에서 window.open() 처리

IOS에서는 window.open()에 대한 처리를 기본적으로 제공하지 않아 별도로 처리를 해주어야 한다. 웹뷰 컨트롤러에 아래와 같은 펑션을 추가하여 현재 뷰 위에 window.open()으로 호출된 페이지를 덧씌운다. //window.open() 에서 호출되는 펑션 func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? { //뷰를 생성하는 경우 let frame = UIScreen.main.bounds //파라미터로 받은 config..

개발/IOS 2021.06.02

AudioManager 사용 시 java.lang.SecurityException: Not allowed to change Do Not Disturb state 에러

AudioManager.setStreamVolume() 메서드 사용시 위와 같은 에러가 발생했다. 단말이 방해금지모드일 때 앱에서 볼륨을 조절하려 하면 발생하는 에러인데 방해금지모드를 무시 할 수 있는 권한을 주어 해결할 수 있다. Settings.Global.getInt(getContentResolver(), “zen_mode”); Settings.Global.getInt(getContentResolver(), “zen_mode”); 를 통해 현재 상태를 확인 할 수 있으며 응답값은 다음과 같다. 0 방해금지모드 OFF 1 중요한 알림만 허용 2 모든 알람에 대해 무음 처리 3 경보만 허용 볼륨값을 설정하기 전 권한을 체크해 권한이 없다면 아래 코드처럼 사용자로부터 권한을 부여받아야 한다. Notifi..

개발/Android 2021.02.09

Annotation 생성

어노테이션을 생성해서 해당 어노테이션의 값으로 특정 변수, 클래스에 지정해주어 어노테이션을 가진 오브젝트에 대해 어떠한 처리를 추가할 수 있다. 어노테이션 생성 방법 @Retention(RUNTIME) @Target(FIELD) public @interface BVparam { boolean hash() default false; } @Retention - 어노테이션의 범위. 어떤 시점까지 어노테이션이 영향을 미치는지 결정. @Documented - 문서에도 어노테이션의 정보가 표현됩니다. @Target - 어노테이션이 적용할 위치를 결정합니다. @Inherited - 이 어노테이션을 선언하면 자식클래스가 어노테이션을 상속 받을 수 있습니다. @Repeatable - 반복적으로 어노테이션을 선언할 수 있..

개발/Java 2021.02.09