0

場所を監視するために、nativescript と angular を使用していくつかのコードを作成しました。

しかし、デバイスの GPS がオンになっているにもかかわらず、geolocation.isEnabled()false と表示されます。

さらに、デバイスを実行しているときgeolocation.watchLocation(..)は、場所の設定しか開きません。エラーメッセージが表示されます:

Error: Location service is not enabled or using it is not granted.

私のアプリが位置情報を使用できない理由を知っている人はいますか?

私の app.compoment.html:

<GridLayout columns="*,*" rows="auto,auto,auto">
    <Label text="Geolocation" class="title" row="0" colSpan="2"></Label>
    <Button row="1" col="0" text="Start Tracking" (tap)="startTracking()"></Button>
    <Button row="1" col="1" text="Stop Tracking" (tap)="stopTracking()"></Button>
    <Label row="2" col="0" text="Latitude: {{latitude}}"></Label>
    <Label row="2" col="1" text="Longitude: {{longitude}}"></Label>
</GridLayout>

私のapp.component.ts:

@Component({
selector: "my-app",
templateUrl: "app.component.html",
})
export class AppComponent {

latitude = "42";
longitude = "5";
watchId = 0;

public startTracking() {
    console.log("Start Tracking");

    /* Check if GPS is enabled. */
    if (geolocation.isEnabled()) {
        console.log("GPS is enabled.");
    } else {
        console.log("GPS is disabled.");
    }

    /* Get Location */
    this.watchId = geolocation.watchLocation(function (loc) {
            if (loc) {
                console.log("Current location is: " + loc);
            }
        }, function (e) {
            console.log("Error: " + e.message);
        },
        {desiredAccuracy: enums.Accuracy.any, updateDistance: 10, minimumUpdateTime: 1000});
}

public stopTracking() {
    console.log("Stop Tracking");
    if (this.watchId) {
        geolocation.clearWatch(this.watchId);
        this.watchId = 0;
    }
}
}
4

1 に答える 1

1

デバイスで地理位置情報サービスのアクセス許可を明示的に設定しようとしましたか?

public enableLocationTap() { 
    if (!geolocation.isEnabled()) {
        geolocation.enableLocationRequest();
    }
}

// in page.html
<StackLayout>
    <Button text="enable Location" (tap)="enableLocationTap()"></Button>
</StackLayout>

ボタンをトリガーした後、アプリは許可/キャンセル スタイル メッセージを含む許可ポップアップを表示する必要があります。

于 2016-07-18T10:59:14.827 に答える