iOS上的PhoneGap网络信息插件问题
我正在开发PhoneGap应用程序,在安装一个特定模块“网络信息”(networkinformation)时遇到问题iOS上的PhoneGap网络信息插件问题,ios,cordova,phonegap-plugins,cordova-plugins,Ios,Cordova,Phonegap Plugins,Cordova Plugins,我正在开发PhoneGap应用程序,在安装一个特定模块“网络信息”(networkinformation)时遇到问题phonegap-v显示我正在运行5.3.7版 所有其他插件似乎都工作正常。这是我正在处理的应用程序中的一个问题,但我也设法在一个新的应用程序中重现了这个问题:在本例中,我只更改了index.html和js/index.js两个文件,没有自动包含的js/cordova.js文件() 我使用以下命令创建了应用程序: phonegap create ios-test cd ios-te
phonegap-v
显示我正在运行5.3.7版
所有其他插件似乎都工作正常。这是我正在处理的应用程序中的一个问题,但我也设法在一个新的应用程序中重现了这个问题:在本例中,我只更改了index.html和js/index.js两个文件,没有自动包含的js/cordova.js文件()
我使用以下命令创建了应用程序:
phonegap create ios-test
cd ios-test
phonegap cordova plugin add cordova-plugin-dialogs
phonegap cordova plugin add cordova-plugin-network-information
phonegap cordova插件列表的输出为:
cordova-plugin-dialogs 1.1.1 "Notification"
cordova-plugin-network-information 1.0.1 "Network Information"
根据一个建议,我将其包装在一个setTimeout()调用中,但这似乎没有什么区别
以下是HTML(index.HTML):
在iPhone上使用phonegap-service
和开发者应用程序运行代码时,我收到调试警报,然后看到“navigator.connection未定义”
我还尝试为iOS构建:
phonegap platform add ios
Adding ios project...
Running command: /Users/James/.cordova/lib/npm_cache/cordova-ios/3.9.2/package/bin/create /Web/ios-test/platforms/ios com.phonegap.helloworld "Hello World" --cli
iOS project created with cordova-ios@3.9.2
Discovered plugin "cordova-plugin-whitelist" in config.xml. Installing to the project
Fetching plugin "cordova-plugin-whitelist@1" via npm
Installing "cordova-plugin-whitelist" for ios
Installing "cordova-plugin-dialogs" for ios
Installing "cordova-plugin-network-information" for ios
这会创建一个platforms/ios
文件夹,但我仍然有同样的问题
我也试过:
- 检查ARC是否已启用
- 将以下内容添加到
:config.xml
- 改用
navigator.network.connection.type
- 正在检查AudioToolbox.framework和SystemConfiguration.framework均已添加:
此
上下文。这是一个常见的错误。Javascriptthis
的工作方式与Javathis
不同
它不起作用的原因是此
在运行时得到解析,而不是在汇编时(或编译时)。当事件触发时,this
解析为全局this
,因为您的app
对象现在超出范围。事件在应用程序
对象的*外部*激发
一个快速解决方法是使用app.ondevicerady
而不是this.ondevicerady
您可以通过将ondevicerady()
设置为全局函数并保留this
来测试这一点
噢,setTimeout()
answer是不知道需要等待devicerady
事件的人。Javascript世界中充斥着糟糕的代码和糟糕的建议
这些视频应该会有所帮助祝你好运
<gap:plugin name="cordova-plugin-network-information" version="1.0.1" />
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
但是CLI不太好用,所以这是最初的问题,没有回答(这样做更容易实现)。谢谢您的回答,这真的很有用!通过以下操作,我仍然得到“network.connection未定义”:我不执行CLi,尽管我应该这样做。我一直在用。在无法访问网络时,如果您使用的是iOS9,则需要应用
CSP
和ATS
。几天前,白名单
插件已经被删除。我还没来得及修改这篇文章。同样,白名单
插件不再适用于iOS9,CSP
和ATS
仍然有效。最好的Luck@JamesI,请参阅我对您原始帖子的评论。您的config.xml
有问题。
已弃用。看到你的插件会失败,不是现在,将来,看看博客。引用:“还要确保您的第三方插件都是最新的,并且您的核心插件都来自NPM,如下所示:
phonegap platform add ios
Adding ios project...
Running command: /Users/James/.cordova/lib/npm_cache/cordova-ios/3.9.2/package/bin/create /Web/ios-test/platforms/ios com.phonegap.helloworld "Hello World" --cli
iOS project created with cordova-ios@3.9.2
Discovered plugin "cordova-plugin-whitelist" in config.xml. Installing to the project
Fetching plugin "cordova-plugin-whitelist@1" via npm
Installing "cordova-plugin-whitelist" for ios
Installing "cordova-plugin-dialogs" for ios
Installing "cordova-plugin-network-information" for ios
<feature name="NetworkStatus">
<param name="ios-package" value="CDVConnection" />
</feature>
<gap:plugin name="cordova-plugin-network-information" version="1.0.1" />
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>