2012-03-20 3 views
3

После поиска подходящего способа открыть браузер в моем приложении, я наткнулся на ChildBrowser, который выглядел так, будто он предлагал все, что было после. После нескольких учебных пособий я не могу заставить плагин работать. Я редактировал мой файл PhoneGap.plist для внешних хостов со значением «*», я добавил в плагины ChildBrowserCommand, но когда я запускаю приложение, ничего не происходит, когда я нажимаю ссылку. У меня есть следующий код во главе моего документа;ChildBrowser Phonegap не работает

<script type="text/javascript"> 
    var childBrowser; 

    function onBodyLoad() 
    { 
     document.addEventListener("deviceready", onDeviceReady, false); 
    } 

    //Phonegap ready to go 
    function onDeviceReady() 
    { 
     alert("PhoneGap is ready"); 
     childBrowser = ChildBrowser.install(); 
    } 

    function openChildBrowser(url) 
    { 
     try { 
      window.plugins.childBrowser.ShowWebPage(url); 
      //childBrowser.showWebPage(url); 
     } 
     cathc(err) 
     { 
      alert(err); 
     } 
    } 

</script> 

У меня есть ChildBrowser включены сразу после того, как мой phoneGap.js файл, но не могу заставить его работать, и я не получаю ошибки регистрируемые в консоли. Кто-нибудь знает, что не так, или, по крайней мере, указать мне в правильном направлении?

+0

У меня есть тестовый проект, который использует фейсбук с childbrowser, вы можете проверить его для справки здесь https://github.com/dhavaln/phonegap-facebook – dhaval

+0

убедитесь, что '<имя плагина =» ChildBrowser "value =" com.phonegap.plugins.childBrowser.ChildBrowser "/>' определяется в '/ res/xml/plugins.xml' – dhaval

+0

Спасибо за комментарии @dhaval. У меня нет файла plugins.xml, который заставляет меня думать, что это может быть проблемой. Однако у меня нет папки '/ res/xml ... '. Когда я создаю файл, я помещаю его в корень моей папки www? – JPK

ответ

0

После траты часов/дней, преследующих много запутанных страниц по этой теме, я наконец нашел краткий набор инструкций в этом blog page. Не забудьте взять последний код, как показано в этом github page. Мне удалось получить плагин ChildBrowser для работы с PhoneGap 1.5.0 в Xcode 4.3, работающий в OSX 10.7.3, и протестирован в iOS 4 и 5. Ограничение, которое я обнаружил, заключается в том, что он работает только в портретном режиме. Теперь я принимаю решение включить ландшафтный режим.

1

Мой партнер написал пошаговое руководство по добавлению подключаемого модуля ChildBrowser к проекту Android PhoneGap here.

+0

спасибо за ссылку, но я пытаюсь заставить его работать на iphone/ipad – JPK

+0

Хорошо, я добавил к вашему вопросу тег ios. Удачи! –

+0

спасибо за совет – JPK

3

Этот код ниже работает для меня.

<!DOCTYPE html> 
<html> 
<head> 
    <title>My External Page</title> 
    <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1.0"/> 
    <meta name="format-detection" content="telephone=no"/> 

    <!--iPhone on Safari Standalone mode--> 
    <meta name="apple-mobile-web-app-capable" content="yes" /> 

    <!--Hide iPhone on Safari Native Top Status Bar--> 
    <meta name="apple-mobile-web-app-status-bar-style" content="default" /> 
    <link rel="shortcut icon" href="favicon.ico" /> 

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> 

    <script type="text/javascript" src="cordova-2.1.0.js"></script> 
    <script type="text/javascript" src="childbrowser.js"></script> 

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 

    <script type="text/javascript"> 

     document.addEventListener("deviceready", loaded, false); 

     function loaded() 
     { 
      if (console) 
      { 
       console.log("cordova loaded"); 
      } 
     } 

     function showExternalPage() 
     { 
      if (console) 
      { 
       console.log("in show pmt page"); 
      } 

      Cordova.exec("ChildBrowserCommand.showWebPage", "http://www.google.com/"); 
     } 

     </script> 

</head> 

<body> 

    <div data-role="page" id="myExternalLauncherPage" data-theme="a"> 

     <div data-role="content"> 

      <ul data-role="listview" data-inset="true"> 

       <li> 
        <button type="submit" data-theme="b" id="launcherButton" onclick="showExternalPage()">Launch Google</button> 
       </li> 
      </ul> 

     </div> 

    </div> 

</body> 

Смежные вопросы