我需要定期检查一个网页。 我的想法是定期设置本地通知,例如每20分钟。当通知离开时,设备应该加载网页,检查条件,如果条件为真,设备应该响铃,否则没有。
(NOTIFICATION) -> (LOAD WEB PAGE) -> [VERIFY CONDITION]-|if true|-> (RING)
技术上可行吗?如何在应用未运行时加载网页?
我的代码草图是这样的:
func check () {
pageCode = // find a way to load the page
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(NSEC_PER_MSEC * 100))
dispatch_after(delayTime, dispatch_get_main_queue()){
let readCode = self.pageCode.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName('body')[0].outerHTML")
if letturaCodice?.containsString("Some text") == true {
ringPhone()
}
}
}
答案 0 :(得分:0)
使用UILocalNotification
无法使用,但您可以使用远程通知执行此操作。
Apple有一个指南:请参阅 - "使用推送通知启动下载" https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
之前使用过的远程通知平台名为OneSignal,它完全免费,可让您安排通知。 https://onesignal.com
编辑: 没有回答关于响铃的问题,不确定对不起!
答案 1 :(得分:0)
选项1:
您可以构建应用程序以使用后台应用程序刷新功能,如果我们说您没有获得200的http状态代码,则可能会发出警报。 如果你使用这个选项,你可以在函数中构建一个自定义的音调来构建应用程序。
选项2:
使用服务器端脚本检查并启动推送通知。此方法将取决于通知如何运行的电话设置。
答案 2 :(得分:0)
您可以尝试使用require_once ('app/Mage.php');
Mage::app();
// Define the path to the root of Magento installation.
define('ROOT', Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB));
// Obtain the general session and search for an item called 'customer_id'
$core_session = Mage::getSingleton('core/session', array('name' => 'frontend'));
if(isset($coreSession['visitor_data']['customer_id'])){
$customerId = $coreSession['visitor_data']['customer_id'];
} else {
header('Location: '.ROOT.'customer/account/login/');
}
// Load the user session.
Mage::getSingleton('customer/session')->loginById($customerId);
$customerSession = Mage::getSingleton("customer/session");
// We verified that created successfully (not required)
if(!$customerSession->isLoggedIn()) {
header('Location: '.ROOT.'customer/account/login/');
}
// Load customer
$customer = $customerSession->getCustomer();
// We get cell phone
$telefono = $customer->getTelefonoMovil();
来运行后台进程,并在其中添加通知观察器。
UPD:像这样:
Grand Central Dispatch