web app 안에서 사파리로 링크 띄우기가 가능한가요?

1,659 views
Skip to first unread message

zziuni

unread,
Sep 21, 2011, 2:57:49 AM9/21/11
to 앱스프레소
phonegap은 안되던군요. URL Shemes로 어떻게 될까 싶었지만..
사파리는 그냥 http:// 인거 같고...

appdelegate.m를 수정하면 되긴 하던데.. 그렇게 말고 그냥 html만으로는 안되는건가 해서요.

앱스프레소는 어떤가요?
패키징된 웹앱안에서 링크 클릭시.. 아이폰의사파리 혹은 안드로이드 기본 브라우저로 띄울 수 있는 방법이 있나요?

Chin-Seok Lee

unread,
Sep 21, 2011, 3:09:44 AM9/21/11
to appspr...@googlegroups.com
폰갭의 경우 ChildBrowser 플러그인을 통해, 브라우저를 띄우실 수 있습니다.

- https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/ChildBrowser
- https://github.com/phonegap/phonegap-plugins/tree/master/Android/ChildBrowser

앱스프레소도 폰갭처럼 플러그인을 통해 접근해야되지않을까요. (잘 몰라서;;;)


2011/9/21 zziuni <zzi...@gmail.com>

zziuni

unread,
Sep 21, 2011, 10:02:54 AM9/21/11
to 앱스프레소
감사합니다.
찾다가 보기는 했습니다.
하지만 플러그인 도움 없이 HTML 레벨에서 방법이 없을까..해서 찾기 시작한거라서요. ㅎ

그리고 아직 앱스프레소는 플러그인은 안되지 않나요?

링크가 이렇게 복잡할 줄 생각치 못했습니다. ㅎ


On Sep 21, 4:09 pm, Chin-Seok Lee <allieus...@gmail.com> wrote:
> 폰갭의 경우 ChildBrowser 플러그인을 통해, 브라우저를 띄우실 수 있습니다.
>

> -https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/Child...
> -https://github.com/phonegap/phonegap-plugins/tree/master/Android/Chil...

Chin-Seok Lee

unread,
Sep 21, 2011, 12:59:41 PM9/21/11
to appspr...@googlegroups.com
쉬운 레벨에서 모든 것이 가용하길 좋겠지만 ...
일단 기본적인 개념은 깨우치고 가시면 좋지않을까 생각합니다.
앱스프레소에서 많은 기능을 지원하지만, 결국 폰갭과 같은 웹웹레벨인 것을요.

앱스프레소가 멀티플랫폼을 지향하지만, 결국 웹의 각종 내용들을 이해함이 필요할 것이 ...
공짜로 얻어지는 것은 없는 듯 합니다.

iOS/Android/Bada 에서의 Native어플리케이션 플랫폼을 이해하든지 ...
iOs/Android/Band 에서의 웹브라우저 콤포넌트 플랫폼을 이해하든지 말입니다.

native 기술을 이해하든지, 웹기술을 이해하든지의 차이는 있을 듯 합니다.

공짜는 없으니깐요. 결국 각자의 선택이지요. :-)

2011/9/21 zziuni <zzi...@gmail.com>

zziuni

unread,
Sep 22, 2011, 12:45:52 PM9/22/11
to 앱스프레소
말이 돌고 돌아서 무슨 이야긴지 모르겠습니다.

쉬운거 찾지 말고 공부를 더하라는 건지

안되는거 붙잡지 말고 적절한 플랫폼을 찾으라는 말인지.

제가 뭘 공짜로 생각하고 뭘 선택했나요?

71EH

unread,
Sep 22, 2011, 8:14:49 PM9/22/11
to 앱스프레소
안녕하세요?
앱스프레소입니다.

사파리로 링크 여는 것은 이전에 올라왔던 질/답 글을 참고하시기 바랍니다.
"앱 실행 시 모바일웹바로가기(http://groups.google.com/group/appspresso-ko/
browse_thread/thread/fd9dbbe2ab762550/e7e0ed53ff1cb6a6?
lnk=gst&q=open#e7e0ed53ff1cb6a6)"

iolo

unread,
Sep 23, 2011, 2:39:43 AM9/23/11
to appspr...@googlegroups.com
iframe쓰는 게 제일 쉬울 듯...

jquery를 쓰신다면 대충 이런 정도의 코드로 가능할 듯 합니다:

<a href="http://other.page" rel="external">....</a>

$('a[ref=external]).click(function(e) {
  e.preventDefault(); 
  var iframe = $('<iframe>')
    .addClass('popup')
    .attr(src, $(this).attr('href'))
    .appendTo(document.body);
  $('<button>')
    .addClass('popupclose')
    .html('Close')
    .click(function() { $(iframe).remove(); })
    .appendTo(document.body);
  $('<button>')
    .addClass('popupbrowser')
    .html('Browser')
    .click(function() { ax.ext.ui.open($(e.target).attr('href')); });
    .appendTo(document.body);
}

css는 적절하게 꾸며주시면 되구요...

iframe.popup {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
...
}

button.popupclose {
...
}

button.popupbrowser {
...
}

다만, twitter나 facebook 등의 oauth 페이지들은 iframe안에서 열리지 않으므로(피싱 방지를 위한 헤더)...
child browser 플러그인을 쓰셔야 겠지요.
앱스프레소의 경우에는 ax.ext.ui.addWebView/removeWebView 함수를 사용하시면 되는데요,
안타깝게도 앱스프로레소 현재버전(1.0RC2)버전의 경우 ios만 지원합니다.
정식버전에는 android/ios 둘 다 지원할 수 있을 듯...^^;
이 경우에도 위에 코드와 비슷한데요...
iframe 태그 만드는 코드와 그 태그 지우는 코드를 위의 함수로 대체하면 됩니다.

$('a[ref=external]).click(function(e) {
  e.preventDefault(); 
  var child;
  ax.ext.ui.addWebView(
    function(result) { child=handle; },
    $(this).attr('href')),
    { top:0, left:0, width:320, height:480 });
  $('<button>')
    .addClass('popupclose')
    .html('Close')
    .click(function() { ax.ext.ui.removeWebView(function() { }, child); })
    .appendTo(document.body);
  $('<button>')
    .addClass('popupbrowser')
    .html('Browser')
    .click(function() { ax.ext.ui.open($(e.target).attr('href')); });
    .appendTo(document.body);
}

위의 코드는 디테일한 에러 처리등을 생략한 코드인데요...

조만간 위의 코드를 간단한 예제 앱으로 만들어서 올려볼께요~

Reply all
Reply to author
Forward
0 new messages