簡體   English   中英

使用build.phonegap.com的jQuery Mobile和Android設備后退按鈕

[英]jQuery Mobile and Android device back button with build.phonegap.com

我正在使用jquery mobile和Phonegap開發一個Android移動應用程序。 我是使用Phonegap開發Android應用程序的新手。 我需要在android中控制后退按鈕的功能。 我想要的是,如果我在一個特定的頁面上,如果我觸摸后退按鈕會有一個提示詢問“你想要退出應用程序嗎?”。 我可以使用信息幫助來解決這個問題。

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" charset="UTF-8"/> 
    <link rel="stylesheet" href="themes/theme.min.css" />
    <link rel="stylesheet" href="css/jquery.mobile.structure-1.3.2.min.css" />
    <script src="js/jquery-1.10.2.min.js"></script>
    <script src="js/jquery.mobile-1.3.2.min.js"></script>
<script>
document.addEventListener('backbutton', backButtonCallback, false);

function backButtonCallback() {
navigator.notification.confirm('do you want to exit the app?',confirmCallback);
}
function confirmCallback(buttonIndex) {
if(buttonIndex == 1) {
    navigator.app.exitApp();
    return true;
}
else {
    return false;
}
}
</script>

</head>

XML:

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="hap" version="1.0">

    <name>APP</name>
    <description>Happy Au Pair</description>
    <author>Myname</author>        <gap:platforms>
            <gap:platform name="ios" />
            <gap:platform name="android" />
            <gap:platform name="webos" />
            <gap:platform name="symbian.wrt" />
            <gap:platform name="blackberry" project="widgets"/>
    </gap:platforms>
    <gap:plugin name="org.apache.cordova.dialogs" />
     <icon src="icon.png" />
    <preference name="phonegap-version" value="3.1.0" />

    <access origin="*" subdomains="true" />
    <access uri="*" subdomains="true" />
     <access uri="http://gcccs.org" subdomains="true" />
    <feature name="http://api.phonegap.com/1.0/network"/>
    <feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.InAppBrowser" />
    </feature>
    <feature name="App">
    <param name="android-package" value="org.apache.cordova.App" />
</feature>

    <preference name="orientation" value="portrait" />
    <preference name="fullscreen" value="true" />
    <preference name="target-device" value="universal" />

    <icon src="res/icon/android/icon-36-ldpi.png" gap:platform="android" gap:density="ldpi" />
<icon src="res/icon/android/icon-48-mdpi.png" gap:platform="android" gap:density="mdpi" />
<icon src="res/icon/android/icon-72-hdpi.png" gap:platform="android" gap:density="hdpi" />
<icon src="res/icon/android/icon-96-xhdpi.png" gap:platform="android" gap:density="xhdpi" />

<gap:splash src="res/screen/android/screen-ldpi-portrait.png"  gap:platform="android" gap:density="ldpi" />
<gap:splash src="res/screen/android/screen-mdpi-portrait.png"  gap:platform="android" gap:density="mdpi" />
<gap:splash src="res/screen/android/screen-hdpi-portrait.png"  gap:platform="android" gap:density="hdpi" />
<gap:splash src="res/screen/android/screen-xhdpi-portrait.png" gap:platform="android" gap:density="xhdpi" />

</widget>

您將需要為后退按鈕添加事件偵聽器:

document.addEventListener('backbutton', backButtonCallback, false);

然后創建一個函數,在單擊時運行您想要的任何內容:

function backButtonCallback() {
    navigator.notification.confirm('do you want to exit the app?',confirmCallback);
}

然后,如果用戶想要關閉應用程序的回調:

function confirmCallback(buttonIndex) {
    if(buttonIndex == 1) {
        navigator.app.exitApp();
        return true;
    }
    else {
        return false;
    }
}

另外,對於PhoneGap Build,您需要將其添加到config.xml文件中:

<gap:plugin name="org.apache.cordova.dialogs" />

這將允許使用確認通知。

更新:

這是你的html的光模:

<!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
                <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" charset="UTF-8"/>
                <link rel="stylesheet" href="themes/theme.min.css" />
                <link rel="stylesheet" href="css/jquery.mobile.structure-1.3.2.min.css" />
                <script src="js/jquery-1.10.2.min.js"></script>
                <script src="js/jquery.mobile-1.3.2.min.js"></script>
                <script src="cordova.js">
                <script>
                function onLoad() {
                    document.addEventListener('deviceready', deviceReady, false);
                }

                function deviceReady() {
                    document.addEventListener('backbutton', backButtonCallback, false);
                }

                function backButtonCallback() {
                    navigator.notification.confirm('do you want to exit the app?',confirmCallback);
                    }
                function confirmCallback(buttonIndex) {
                    if(buttonIndex == 1) {
                    navigator.app.exitApp();
                    return true;
                    }
                else {
                    return false;
                    }
                }
                </script>

            </head>
            <body onload="onLoad()">

您需要確保始終包含cordova.js ,然后使用事件監聽器准備設備將確保在您對API執行任何操作之前加載cordova。 這應該現在有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM