모바일웹에서 공유기능에 대한 요청이 와서 해당 기능을 구현하기 위해서 내용을 정리해본다. 

 

 

navigator.share() 메서드는 디바이스에 네이티브 공유하기 기능을 작동시킨다. 

Web Share API 가 지원되지 않는 환경일 경우 메소드의 결과는 undefined 이다.

 

share메서드의 파라메터 구성은 아래와 같다.

 

title : 공유될 제목을 나타낸다.

text: 공유될 본문을 나타낸다.

url : 공유될 URL을 나타낸다.

 

<script type="text/javascript">    
  
	 var btnShare = document.getElementById("btnShare");
		 btnShare.addEventListener("click", function(){
		
	   var shareTitle = "공유하기 기능 테스트";
		var shareText = '공유하기 기능 입니다.';
		var contentURL = "/share/shareUrl";
		var URLPreFix = "";
		
		URLPreFix = URLPreFix + "//" + location.host;
		
		var shareURL = URLPreFix + contentURL;
		
		if (navigator.share){
			  navigator.share({
			      title: shareTitle,
			      text: shareText,
			      url: shareURL,
			  })
		    .then(() => console.log('Successful share'))
		    .catch((error) => console.log('Error sharing', error));
		}else{
			alert("공유하기를 지원하지 않는 환경입니다.");
		}
	});
		
</script>

안드로이드폰에서 실행한 화면 예제)

참고 포스팅 글들 

developer.mozilla.org/ko/docs/Web/API/Navigator/share

 

Navigator.share - Web API | MDN

Navigator.share Navigator.share() 메소드는 Web Share API 의 부분으로서 디바이스의 네이티브 공유하기 메커니즘을 작동시킨다. Web Share API 가 지원되지 않는다면, 이 메소드는 undefined 일 것이다.var sharePro

developer.mozilla.org

ui.toast.com/weekly-pick/ko_20190618

 

Web Share API 사용하기 | TOAST UI :: Make Your Web Delicious!

Web Share API는 안드로이드 Chrome 61 버전에서 처음 소개되었지만 다들 있는지도 모르는 기능이었다. 본질적으로, 이 API는 기기의(혹은, Safari를 사용하는 데스크탑의) 링크나 연락처 카드 등의 컨텐

ui.toast.com

 

블로그 이미지

클라인STR

,

Eclipse에서  Unresolved compilation problem 해당 에러가 발생하는 경우 

톰켓에 서버를 선택하고 오른쪽 마우스 버튼 메뉴에서 Project Clean을 선택하고 다시 빌드를 한 다음 톰캣을 재구동 해본다.

블로그 이미지

클라인STR

,

chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda

 

CRX Extractor/Downloader

Download CRX Files directly as crx or zip file depending upon your choice

chrome.google.com

 

크롬을 열어서 CRX Extractor/Downloader 플러그인을 설치한다.

 

 

 

인터넷이 가능한 PC에서 설치하고자하는 플러그인항목을 찾아서 오른쪽마우스 버튼을 선택하고 Download ZIP for this extension 을 선택하여 플러그인을 다운로드 받아서 USB로 옮긴다.

 

 

 

 

 

chrome://extensions 입력하여 확장프로그램 메뉴를 실행한다음. 압축해제된 확장 프로그램을 로드합니다.를 선택하고

USB에설치파일을 적당한 위치로 옮겨 압축을 해제한 다음 로드를 완료하면 해당 플러그인이 설치된것을 확인 할 수 있다. 

 

 

 

출처 : www.dgtnmd.net/?p=736

블로그 이미지

클라인STR

,

최근 일하는 곳이 오프라인 환경이라서 크롬업데이트를 해야되는 경우가 종종 발생하여 해당 내용을 정리해봅니다.

 

support.google.com/chrome/answer/95346?co=GENIE.Platform%3DDesktop&hl=ko

 

Chrome 다운로드 및 설치 - 컴퓨터 - Google Chrome 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

 

 

www.google.com/intl/en/chrome/?standalone=1

 

Chrome 웹브라우저

더욱 스마트해진 Google로 더 심플하고 안전하고 빠르게.

www.google.com

 

해당설치 파일을 다운로드 받아서 USB로 해당 설치파일을 옮겨줍니다. 

 

 

설치파일을 실행한뒤 설치를 진행하면됩니다.  간혹 설치파일 실행중 설치가 중단되는 경우가 있는데, 기존에 설치된 크롬을 삭제한 후 재실행을 하면 되는경우가 있습니다.  혹시 이렇게 해서도 설치가 실패하는경우가 있는데 크롬 설치내역을 완전히 삭제한 후 인스톨을 다시 진행하면 되었던 기억이 나네요. 

 

 

블로그 이미지

클라인STR

,

Javascript Object 를 매개변수로 변경하다보니 참조값이 변경되는 문제가 생겨 객체 복사에 대해서 찾아보고 정리해보았다.

깊은복사 하는 방법

1.JQuery extend()

var orgin = {
	nested: {
  	key: '123'
  },
  options : false
};
var var1 = $.extend(true, {}, orgin); //첫번째 인자에 반드시 true 줘야된다. 안주면 얕은복사가됨

var1.nested.key = '5431';
console.log(orgin);
console.log(var1);

  

3.JSON.parse(JSON.stringify()) 

var orgin = {
	nested: {
  	key: '123'
  },
  options : false
};

var var1 = JSON.parse(JSON.stringify(orgin));

var1.nested.key = '5431';
console.log(orgin);
console.log(var1);

블로그 이미지

클라인STR

,

가끔식 개발을 하다 보면 햇갈리는 부분이 간혹 생겨서 이번 기회에 정리하고자 나름 웹서핑을 하여 결론을 정리해보았습니다.

자바스크립트는 call by value 만 존재한다는 게시글과 call by value, call by reference 둘 다 존재한다는 게시글도 제법 보였습니다.

function callByValue(a) {
	
    a = 55;
    console.log(a);
    
}

var a= { obj : 44 };

 

해당 함수를 콘솔에 실행하면 아래와 같은 결과 값이 도출됩니다.

 

 

 

callByValue 함수에 a변수를 호출하면 a의 값이복사되어 전달되어 함수 내부에서 a에 값이 55로 바뀌어 출력됩니다.

console.log로 a변수를 호출하면  위에 값이 {obj : 44 } 값이 출력되는 것을 확인할 수 있습니다.

 

 

function callByValue2(o) {
    o.obj = 55;
    console.log(o);
    
}

var a = { obj : 44};

 

 

객체의 obj를 매개변수로 호출하여 함수 스코프네에서 객체값을 수정할 경우 참조된 객체 값이 수정된 상태를 유지합니다.

이를 Call by Sharing이라는 용어로 표현하기도 합니다.

 

 

결론적으로 자바스크립트는 Call by Value만 존재합니다.

블로그 이미지

클라인STR

,

소수점 자리수가 한자리적게 나온다는 버그리포팅을 받아 해당 내용을 작성하게 되었다.

package com.company.format;
import java.text.DecimalFormat;
public class DecialFormatExample {
    public static void main(String[] args) {
        double  d1 = 20.0140000;
        double  d2 = 33.0235989;
        DecimalFormat format = new DecimalFormat("##.####");
        System.out.println("d1  / "+format.format(d1));
        System.out.println("d2 / "+format.format(d2));
        System.out.println("=======================");
        format = new DecimalFormat("#0.0000");
        System.out.println("d1 / "+format.format(d1));
        System.out.println("d2 / "+format.format(d2));
    }
}

소수점 맨뒤에 자리수가 0인경우 ##.#### 으로 한경우 0이 생략된다. 

이때 자리수를 유지해주기위에서는 .뒤로 0000으로 채운다. 

#일경우 0은 표시하지 못하는거같다. 

 

 

블로그 이미지

클라인STR

,

1. JSP캐쉬 , 프로그램 수행속도 체크, 배포실수 확인한 경우



2. 피들러 원격 사용테스트 



3. 모바일웹 안드로이드 세션 오류 




4. 마이포인트 연동기 - 




5. 네이버페이 연동후기 



6. encodeURIComponent 쓰는 이유 ?



7. a태그 target _blank 



8. 윈도우10에서 아이폰 테더링 하는 방법


https://thursday1101.tistory.com/497

https://gyeongsang.kr/329

https://cutekirin.tistory.com/197



9. Mybatis Type Ailas 오류 






10. Spring Resttemplate get, post, ssl 인증서없이 호출하는방법 




11. 인터넷 익스플로러 에서 버튼이 보이지 않네???








블로그 이미지

클라인STR

,