2014-01-28 2 views
0

RSS 피드 (XML)에서 데이터를 가져 오는 앱에서 작업했습니다. 즉, 제공되는 내용을 제어 할 수 없다는 것을 의미합니다. 피드에 Google Api를 사용하여 JSON 형식의 데이터를 검색하고 jQuery (feeder.js)를 사용하여 결과 HTML을 정보로 생성합니다.PhoneGap과 함께 작동하는 Android의 새 브라우저 창에서 URL 열기

결과 HTML은 내 PhoneGap 프로젝트 안에 들어가며 모든 것이 잘 작동합니다.

유일한 문제는 RSS에서 검색 한 정보 내에서 일부 링크 (예 : 페이스 북, 트위터, 개인 사이트, 신문 등)가있는 경우가 있습니다.

피더는 제목, 단락, 링크 등을 포함하는 요소 안의 모든 콘텐츠를 제공합니다.

내가 지금 필요한 것은 기사 내부에서이 링크를 타겟팅하고 window.open 이벤트를 호출하거나 외부 브라우저에서 링크를 여는 모든 작업을 호출하는 방법입니다. feeder.js에 의해 생성

HTML 구조는 다음과 같이 진행됩니다

<article> 
    <h2>Title</h2> 
    <p>Content</p> 
    <a href="http://facebook.com">This link here!</a> 
    <p>More content</p> 
</article> 

당신이 볼 수 있듯이, 어떤 클래스 나 ID를 프로그래머 없습니다 여기에 지적으로 나타나는 바와 같이, 하나의 요소를 대상으로.

저는 현재까지 Android SDK 및 PhoneGap의 최신 버전을 사용하고 있습니다.

기본적으로해야 할 일은 <> <>> 내에서 요소를 타겟팅하고 새 브라우저 창 이벤트를 제공하는 것입니다.

나에게 도움이되는 분, 환호하는 분에게 가장 좋은 점은!

<script> 
    $(document).on('click', 'a', function(e) { 
     if ($(this).attr('target') !== '_blank') { 
     e.preventDefault(); 
     window.location = $(this).attr('href'); 
     } 
    }); 
</script> 

은 앱 내에서 또한 jQuery를 모바일을 사용하는 경우 <a> 태그에 rel="external"을 추가해야합니다 :

답변

3

여기에 Google을 많이 연구 한 후 다음을 생각해 냈습니다.

내 앱에 표시되는 콘텐츠와 함께 onClick 이벤트가있는 뒤로 버튼이 있습니다.이 버튼을 사용하여 함수를 정의하고 기사 내의 링크를 타겟팅하는 이벤트를 호출했습니다. 그런데 버튼에는 # href 속성이 있습니다.

이 작업을 수행 한 후 "attr"을 통해 onClick 이벤트를 추가 한 다음 href 속성을 #으로 남겨 둡니다. 다음과 같이

스크립트가가는 다음의 onclick 내부

function button(){ 
     var button = $(location).attr('href'); 
     button = button+'#'; 
     $('#articles a').each(function(){ 

       if(this != button){ 
        $(this).attr("onClick", "navigator.app.loadUrl('"+this+"', { openExternal:true });"); 
        $(this).attr("href", "#"); 
       } 
      }); 
    } 

, 나는 폰갭의 내 버전에서

"navigator.app.loadUrl"이었다 새 브라우저 창을 열기위한 이벤트를 호출 이제 html이 RSS 피드 콘텐츠를로드 할 때마다 다음 링크가 표시됩니다.

< onclick = "navigator.app.loadUrl ('https://google.com/', {openExternal : TRUE}). "이것은 사용자가 자신이 사용하고자하는 브라우저를 선택할 수있는 대화 상자를 엽니 다>

> 링크 </A

다시 한 번 감사드립니다

+0

우수) Phonegap Android 3.x – jasonflaherty

0

당신이 jQuery를 사용하는 경우에는이 기능을 사용할 수 있습니다. 뭔가 도움이되지 않으면 도움이되기를 바랍니다. 해피 코딩!

+0

조언을 주셔서 감사합니다.하지만 JQM을 사용하지 않습니다. 어쨌든 다른 프로젝트에서 해결책을 시도해보고 어떻게되는지 확인하십시오. – user3246207

+0

이 함수는 JQM없이 작동합니다. (예 : '클릭', '기사 a', 기능 (e) –

관련 문제