我正在尝试实现Web意图,并且当用户与我的应用程序共享内容并希望获得一些文本时需要显示弹出窗口。
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是一家工厂。我想显示一个模态或弹出窗口,用户可以输入一些文本,我可以使用未来。
.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 :(得分:0)
以下是调试问题的一些想法:
alert('YES THIS WORKS!')
工厂中放置一个简单的messageAlert.saveData()
时,它是否有效?答案 1 :(得分: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;
});
}
};
});
请注意,我没有测试后一个代码,因为我不了解您的确切用例。