2015-05-26 3 views
1

Я пытаюсь реализовать намерение Сети и должен показать всплывающее окно, когда пользователь поделился чем-то с моим приложением и хочет получить текст.Ионный открытый модал в app.js

if (window.plugins && window.plugins.webintent) { 

     var incomingURL; 
     window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_TEXT,function(url) { 
      incomingURL = url 
      var myPopup = messageAlert.saveData(url); 

     }, function() { 
     incomingURL = false; 
     } 
); 

Здесь messageAlert - это завод. Я хочу показать модальное или всплывающее окно, где пользователь может ввести некоторый текст, и я могу использовать furture.

.factory('messageAlert', function ($ionicPopup,$timeout,$ionicModal) { 
    return { 
     saveData : function(url) { 
     // here i tried different scenes. but nothing work out. 
     // i want a form where user can input some data and save 
     } 
    } 

} 

Кто-нибудь может дать мне идея

+0

Вы сказали, что пользователь может поделиться чем-то с вашим приложением, как насчет плагина ngCordova? как это ... http://ngcordova.com/docs/plugins/socialSharing/ –

+0

это не социальный обмен. это shgaring с моим приложением. когда u не другое приложение. hit share, он покажет вам имя myapp. и мне нужно текстовое поле или модальный, чтобы пользователь мог добавить текст –

ответ

0

Насколько я понимаю, ваша проблема не о получении webintent работать, а просто, чтобы отобразить $ionicPopup.

Таким образом, основная проблема, которую я вижу, заключается в том, что вы вводите $ionicPopup на заводе. Поскольку вы хотите отобразить всплывающее окно в представлении, вам нужно ввести его в свой контроллер. Там вы можете создать всплывающее окно, как это:

$ionicPopup.prompt({ 
    title: 'Your title text', 
    template: 'Please enter your text here', 
    inputType: 'text', 
    inputPlaceholder: 'Your text here' 
}).then(function(res) { 
    // after the user typed something, this result callback will be called 
    // res will contain the text which your user entered 
}); 

Вы можете найти соответствующие документы с возможными настройками here.

Попытка объединить это с кодом выше, я хотел бы предложить что-то вроде этого:

.controller('YourCtrl', function($ionicPopup, messageAlert) { 

    this.someFunction = function() { 

     if (window.plugins && window.plugins.webintent) { 
      var incomingURL; 
      window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_TEXT,function(url) { 
       incomingURL = url; 

       // open the text input popup 
       var myPopup = $ionicPopup.prompt({ 
        title: 'Your title text', 
        template: 'Please enter your text here', 
        inputType: 'text', 
        inputPlaceholder: 'Your text here' 
       }); 

       // after the user typed something, this result callback will be called 
       myPopup.then(function(userText) { 
        // userText contains the text which your user entered 
        // now you can save the data with your factory 
        messageAlert.saveData(incomingURL, userText); 
       }); 

      }, function() { 
       incomingURL = false; 
      }); 
     } 
    }; 
}); 

Пожалуйста, обратите внимание, что я не проверял последний код, так как я не понимаю ваш точный вариант использования.

0

Вот некоторые идеи, чтобы отладить проблему:

  1. ли работать это, когда вы положили простой alert('YES THIS WORKS!') в messageAlert.saveData() заводе?
  2. Вы уверены, что приложение было вызвано с указанным дополнительным? См: https://github.com/Initsogar/cordova-webintent#hasextra
Смежные вопросы