【发布时间】:2014-10-04 14:19:20
【问题描述】:
我已经实施了所有我找不到的文档和修复程序。
我希望应用在点击按钮时获取位置。
我尝试的每个修复都有以下两种结果之一:
1) 每次都会出现乱七八糟的权限请求。
2) 经纬度报告为'0'。
无论我在哪里调用 getCurrentPosition(),我都会收到一团乱七八糟的权限请求(即使在首次加载应用程序时请求它)。
我可以将权限请求限制为每个会话一次,但这仍然是一个丑陋的混乱,我无法相信没有办法避免它。
config.xml -- 使用 ConfiGAP 更新
<preference name="phonegap-version" value="3.3.0" />
<preference name="orientation" value="portrait" />
<preference name="fullscreen" value="false" />
<preference name="target-device" value="universal" />
<preference name="webviewbounce" value="false" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="true" />
<preference name="ios-statusbarstyle" value="black-transparent" />
<preference name="detect-data-types" value="false" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="false" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="EnableViewportScale" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="BackupWebStorage" value="none" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
<preference name="HideKeyboardFormAccessoryBar" value="false" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="android-minSdkVersion" value="7" />
<preference name="android-installLocation" value="internalOnly" />
<preference name="SplashScreenDelay" value="5000" />
<preference name="ErrorUrl" value=""/>
<preference name="BackgroundColor" value="0x000000"/>
<preference name="KeepRunning" value="true"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="LoadingDialog" value=","/>
<preference name="LoadUrlTimeoutValue" value="20000" />
<preference name="disable-cursor" value="false" />
<gap:platform name="ios" />
<gap:platform name="android" />
<gap:platform name="winphone" />
<feature name="http://api.phonegap.com/1.0/geolocation"/>
<gap:plugin name="org.apache.cordova.geolocation" />
<gap:plugin name="org.apache.cordova.splashscreen" />
<gap:plugin name="com.phonegap.plugin.statusbar" />
<gap:config-file platform="ios" parent="UIStatusBarHidden">
<true/>
</gap:config-file>
<gap:config-file platform="ios" parent="UIViewControllerBasedStatusBarAppearance">
<false/>
</gap:config-file>
app.js
$("#punches").on('pagebeforeshow', function () {
navigator.geolocation.getCurrentPosition (function (pos) {
var lat = pos.coords.latitude,
lon = pos.coords.longitude;
$("#latitude").val(lat);
$("#longitude").val(lon);
});
});
厌倦了将我的头撞到墙上,因为我觉得应该比我做的容易得多。
任何帮助非常感谢。
【问题讨论】:
-
“警报表单”中的权限是因为没有正确包含cordova.js 库。所以事件没有正确映射。您是在使用 phonegap build 还是 cordova-cli 来构建您的应用程序?
-
我们正在使用 PhoneGap Build 服务。
标签: ios jquery-mobile cordova phonegap-plugins phonegap-build