안드로이드 웹뷰에서 단말기정보나 단말기 기능이 필요할때 


자바스크립트에서 메소드 호출형식으로 


네이티브 코드에 정의해놓은 메소드를 불러다 쓸 수 있다.




코드 - Android Native Code

public class Test extends Activity {

    /** Called when the activity is first created. */

    WebView webView ; 

    WebSettings wSet; 

    String HOME_URL = this.getResources().getString(R.string.homeURL);

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

     

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

        wSet = webView.getSettings(); 

     

webView.addJavascriptInterface(new JavaScriptInterface(this.getApplicationContext()

, webView

, HOME_URL

)

, "margoScript" // 웹뷰 자바스크립트에서 쓸 메소드명

);



- JavaScriptInterface Class

public class JavaScriptInterface {


Context context;

String phoneNum;

String udid;

WebView webView ;

String url;

public JavaScriptInterface(Context context, WebView webView, String url) {

this.context = context;

this.webView = webView;

this.url = url;

}

public String getUdid(){

TelephonyManager tm = 

(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);

phoneNum = tm.getLine1Number();

udid = android.provider.Settings.Secure.getString(context.getContentResolver()

, Settings.Secure.ANDROID_ID);

return udid;

}

public void resetAndHome(){

webView.clearHistory();

}

}



- WebView Javascript

완전 간단하다 그냥 편하게 불러쓰자. 값을 넘겨 호출 할 수도 있다.


function getUdid(){

 

return window.margoScript.getUdid();

}

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


출처 : http://blog.naver.com/PostView.nhn?blogId=leeyc09&logNo=30104364339


  

 

[JQuery Mobile] listview Accordion Plug In

jQuery : jquery-1.5
jQuery Mobile : jquery.mobile-1.0a3

Copyright (c) Boris Smus (original) : http://forum.jquery.com/topic/listview-accordion-plugin
Copyright (c) Lee Young Chan (modify) : http://forum.jquery.com/topic/jquery-mobile-listview-accordion-plugin-to-use-with-list-divider-role-optional

 

최초 소스 제공자인 보리스에게 감사를 드리며 내가 조금 수정 및 보안을 해 보았다.

 

기존의 소스에서는 기본적인 list-view에서만 사용이 가능 한 것을 list-divider 스타일에도 사용 할 수 있도록 수정 하였다.

 

list-divider 사용 시 Header 를 클릭하면 펼침목록이 나온다.

 

list-divider 스타일을 사용하고 싶지 않다면 ui 에서 data-rule='list-divider' 를 삭제하면 된다.

 

Padding CSS 가 남아 있어 펼쳐지기 전에 목록이 보이던 현상도 같이 수정 했으며

 

Silde 효과가 들어 있었으나 모바일 환경에서는 속도저하 현상을 보여 제거 하였다.

 

 

 

다운로드 받으 실 땐 덧글 좀 남겨주세요 :)



근데 이놈을 쓰다보면 문제가 하나있다.


펼쳐지는놈의 크기만큼 늘어나야하는데 크기가 고정이라서


크기보다 내용이 많은 경우에는 다짤려버린다.


css 에서 고쳐주면 크기가 자동으로 잘 지정된다.


.ui-li-accordion { 

height:inherit;

background-color: transparent;

display: none; 

position: relative;}


제가 따로 파일로 배포하지는 않겠습니다. 최상단 출처 링크로 가셔서 받으세요.

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


제이쿼리에서 잘 쓰는 DatePicker처럼 다른녀석이 있다.


DataBox 라는 놈인데 이놈도 쓸만하다.


안드로이드에서 밖에 안써봤지만, flip 모드는 퍼포먼스가 최악이다. 기대하지말라.


요게 필요하다.

<link type="text/css" href="http://dev.jtsage.com/cdn/datebox/latest/jquery.mobile.datebox.min.css" rel="stylesheet" /> 

 <link type="text/css" href="http://dev.jtsage.com/cdn/simpledialog/latest/jquery.mobile.simpledialog.min.css" rel="stylesheet" /> 


 <script type="text/javascript" src="http://dev.jtsage.com/jquery.mousewheel.min.js"></script>

 <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jquery.mobile.datebox.min.js"></script>

 <script type="text/javascript" src="http://dev.jtsage.com/cdn/simpledialog/latest/jquery.mobile.simpledialog.min.js"></script>

 <script type="text/javascript" src="http://dev.jtsage.com/gpretty/prettify.js"></script>

 <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/i18n/jquery.mobile.datebox.i18n.ko.utf8.js"></script>

 ↑ 요놈은 한글로 변환시켜주는놈

 <link type="text/css" href="http://dev.jtsage.com/gpretty/prettify.css" rel="stylesheet" />



코드

날짜 

<input type="date" data-role="datebox" data-theme='a' name="meetDay" id="meetDay" readonly

    placeholder="날짜 선택" data-options='{"mode": "flipbox","headerFormat": "날짜 선택"}' />


시간

<input name="meetTime" id="meetTime" data-theme='a' type="date" data-role="datebox" readonly

placeholder="시간 선택" data-options='{"mode": "timeflipbox", "headerFormat": "시간 선택"}'>



참고 : http://dev.jtsage.com/jQM-DateBox/


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


Textarea fields

$('body').prepend('<textarea id="myTextArea"></textarea>');
$('#myTextArea').textinput();

Text input fields

$('body').prepend('<input type="text" id="myTextField" />');
$('#myTextField').textinput();

Buttons

$('body').append('<a href="" data-theme="e" id="myNewButton">testing</a>');
$('#myNewButton').button();

Combobox or select dropdowns

<label for="sCountry">Country:</label>
<select name="sCountry" id="sCountry">
<option value="">Where You Live:</option>
<option value="ad">Andorra</option>
<option value="ae">United Arab Emirates</option>
</select>

var myselect = $("#sCountry");
myselect[0].selectedIndex = 3;
myselect.selectmenu('refresh');

Listviews

<ul id="myList" data-role="listview" data-inset="true">
<li>Acura</li>
<li>Audi</li>
<li>BMW</li>
</ul>

$('#mylist').listview('refresh');

Slider control

<div data-role="fieldcontain">
<label for="slider-2">Input slider:</label>
<input type="range" id="slider-2" value="25" min="0" max="100" />
</div>

$('#slider-2').val(80).slider('refresh');

Toggle switch

<div data-role="fieldcontain">
<label for="toggle">Flip switch:</label>
<select name="toggle" id="toggle" data-role="slider">
<option value="off">Off</option>
<option value="on">On</option>
</select>
</div>

var myswitch = $("#toggle");
myswitch[0].selectedIndex = 1;
myswitch .slider("refresh");

Radio buttons

<div data-role="fieldcontain">
    <fieldset data-role="controlgroup" data-type="horizontal">
      <legend>Layout view:</legend>
          <input type="radio" name="radio-view" value="list" />
          <label for="radio-view-a">List</label>
          <input type="radio" name="radio-view" value="grid" />
          <label for="radio-view-b">Grid</label>
          <input type="radio" name="radio-view" value="gallery" />
          <label for="radio-view-c">Gallery</label>
    </fieldset>
</div>

$("input[value=grid]").attr('checked',true).checkboxradio('refresh');

Checkboxes

<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>Agree to the terms:</legend>
<input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" />
<label for="checkbox-1">I agree</label>
</fieldset>
</div>

$('#checkbox-1').attr('checked',true).checkboxradio('refresh');


출처 : http://www.andyMatthews.net


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


페이지 전환시에 로딩대화창이 수동으로 띄울때 스크립트에서


$.mobile.pageLoading(); 하면  has no method 뜬다.....


버전업 되면서 저놈이 없어지고


$.mobile.showPageLoadingMsg("a", "Loading theme a...");


이놈으로 대체되었다. 


첫번째 인자는 theme 이고, 두번째는 메세지이다.


끌때는 $.mobile.hidePageLoadingMsg();



YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST