如何防止PhoneGap Build询问位置权限? (苹果手机)

时间:2014-08-11 17:05:25

标签: ios jquery-mobile cordova phonegap-plugins phonegap-build

我已经实现了我找不到的所有文档和修复。

我希望应用在点按按钮时抓住该位置。

我尝试的每一个修复都有两个结果之一:
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);
    });
});

厌倦了把头撞在墙上,因为我觉得应该比我制作的东西容易得多。

非常感谢

任何帮助。

2 个答案:

答案 0 :(得分:0)

不应该是

var lat = pos.coords.latitude;
var lon = pos.coords.longitude;

我还要确保我指定了核心地理位置插件的版本,以便您知道它适用于您的PGB版本。

答案 1 :(得分:0)

这非常令人尴尬......但似乎我所缺少的只是:

<script src="phonegap.js"></script>

我把它放在我的index.html中,双重权限现在已经消失,纬度/经度被正确报告。

我为这个问题道歉。感谢那些帮助过的人。