use*_*971 5 plugins cordova ios7
我想实现这个插件:https ://github.com/christocracy/cordova-plugin-background-fetch 。我使用 CLI 安装了该插件,然后将 BackgroundFetch.js 文件复制到我的 www 目录并在 index.html 中引用它。我将 git url 中给出的示例代码放置在 DeviceReady 函数中。尽管如此,在启动时我还是遇到了错误:
类型错误:“未定义”不是对象(正在评估“Fetcher.configure”)
有人可以告诉我为什么会发生这种情况吗?我已经尝试了两天但没有成功。任何帮助将不胜感激。提前致谢!
看到Clawish的建议后,我删除了js文件及其引用,并再次删除并添加了插件。现在我没有收到任何错误,但我在日志中没有看到“CDVBackgroundFetch 配置”。如果我在模拟器上模拟后台提取,则会收到错误: -
CDVBackgroundFetch onFetch
警告:应用程序委托收到对 -application:performFetchWithCompletionHandler: 的调用,但从未调用完成处理程序。
我哪里错了?除了添加示例代码以在 onDeviceReady 中调用 Fetcher.configure 之外,我没有对代码进行任何更改
在看到你的 Clawfish 的第二次编辑后,我删除了服务调用并缩短了函数,如下所示:
onDeviceReady: function() {
app.receivedEvent('deviceready');
var Fetcher = window.plugins.backgroundFetch;
// Your background-fetch handler.
var fetchCallback = function() {
console.log('BackgroundFetch initiated');
Fetcher.finish();
}
Fetcher.configure(fetchCallback);
},
Run Code Online (Sandbox Code Playgroud)
尽管如此,我没有看到任何日志消息说“CDVBackgroundFetch 配置”,并且在模拟后台获取时出现与上面相同的警告。看起来 Fetch 部分是在没有首先运行配置的情况下执行的。
Edit2:我想您已经添加了文档中的整个示例代码(带有声明var Fetcher
和处理程序var fetchCallback
,并且在声明两者之后,您运行Fetcher.configure(fetchCallback);
。问题可能是您没有在您的中引用 jQueryindex.html
并且代码在它停止运行时停止运行看到这一行$.get(...)
。如果是这种情况,请下载jQuery,将其放入您的www
文件夹中,然后从您的 中引用它index.html
。您看到控制台消息了吗console.log('BackgroundFetch initiated');
?怎么样/heartbeat.json
,您更改了吗?
编辑:您不需要将BackgroundFetch.js复制到您的www
目录,也不需要在index.html
. 尝试删除您的引用index.html
并在安装后保持插件文件不变。如果您更改了有关文件结构的某些内容,则应该稍后再cordova plugin remove
更改该插件。add
我不知道您从哪个控制台收到此错误。如果它是一个浏览器控制台,比如 Chrome,那就不足为奇了,因为 Fetcher 只能在 iDevice(或 iOS 模拟器)上运行。Cordova 控制台插件不会打印此类消息。
尝试在 iOS 模拟器中使用该代码。
归档时间: |
|
查看次数: |
1519 次 |
最近记录: |