這幾天編輯Blogger的連結清單,應該都會顯示「請修正此表單中的錯誤」的字樣,如下:
解決方法很簡單,示範如下:
1 2 3 4 5 6 7 8 9 | @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 解決 "The connection to the server was unsuccessful" 的問題 super.setIntegerProperty("loadUrlTimeoutValue", 900000000); super.loadUrl("file:///android_asset/www/index.html" ); } |
navigator.notification.beep( 1 ); // 播放提示音效一次
<audio id="clickAudio" src="click.wav" preload="auto"></audio>
document.getElementById( "clickAudio" ).play(); // 播放物件
1 2 3 4 5 6 7 | // 取得Phonegap可識別的檔案路徑 . function getPhoneGapPath() { var path = window.location.pathname; path = path.substr( path, path.length - 10 ); return 'file://' + path; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // 藉由PhoneGap API來播放音效檔 function playAudio( url ) { // Play the audio file at url var my_media = new Media( url, // success callback function() { console.log( "playAudio():Audio Success" ); }, // error callback function( err ) { console.log( "playAudio():Audio Error: " + err ); } ); my_media.play(); // 開始播放 //my_media.stop(); //my_media.release(); } |
playAudio( getPhoneGapPath() + "click.wav" );
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // 滑鼠左鍵按下的事件 for Windows Phone, Android, ... document.onmousedown = function( event ) { try { var x = event.pageX + document.documentElement.scrollLeft; var y = event.pageY + document.documentElement.scrollTop; mousedown( x, y ); // 在(x,y)位置點擊後的事件處理 } catch ( err ) { errorMessage.innerHTML += "發生錯誤: " + err.stack + "<br>"; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // 對應滑鼠按下的觸摸事件 for IOS document.ontouchstart = function( event ) { try { var touch = event.touches[0]; var x = touch.clientX + document.body.scrollLeft; var y = touch.clientY + document.body.scrollTop; mousedown( x, y ); // 在(x,y)位置點擊後的事件處理 } catch ( err ) { errorMessage.innerHTML += "發生錯誤: " + err.stack + "<br>"; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | - (void) webViewDidFinishLoad:(UIWebView*) theWebView { // only valid if ___PROJECTNAME__-Info.plist specifies a protocol to handle if (self.invokeString) { // this is passed before the deviceready event is fired, so you can access it in js when you receive deviceready NSString* jsString = [NSString stringWithFormat:@"var invokeString = \"%@\";", self.invokeString]; [theWebView stringByEvaluatingJavaScriptFromString:jsString]; } // Black base color for background matches the native apps theWebView.backgroundColor = [UIColor blackColor]; // ------------- 加入開始 ----------------- // 取得系統語言 NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; // 組合呼叫用的字串 NSString * front = [NSString stringWithFormat:@"setDefaultLanguage(\""]; NSString * back = [NSString stringWithFormat:@"\");"]; NSString * temp = [front stringByAppendingString:language]; NSString * jsFunctionString = [temp stringByAppendingString:back]; // 呼叫設置語言的javascript funciton [theWebView stringByEvaluatingJavaScriptFromString:jsFunctionString]; // ------------- 加入結束 ----------------- return [super webViewDidFinishLoad:theWebView]; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | // 設置預設語言 function setDefaultLanguage( language ) { if ( ON_DEVICE ) // 實機 { if ( language.toUpperCase().match( "TW" ) || language.toUpperCase().match( "HK" ) ) { gLanguageIndex = ZH; // 繁體中文 } else if ( language.toUpperCase().match( "CN" ) ) { gLanguageIndex = CN; // 簡體中文 } else if ( language.toUpperCase().match( "EN" ) ) { gLanguageIndex = EN; // 英文 } else if ( language.toUpperCase().match( "JA" ) || language.toUpperCase().match( "JP" ) ) { gLanguageIndex = JA; // 日文 } else if ( language.toUpperCase().match( "KO" ) ) { gLanguageIndex = KO; // 韓文 } else { gLanguageIndex = EN; // 實機的預設語言 } } else // 非實機 { gLanguageIndex = TW; // 非實機的預設語言 } } |
1 2 3 4 5 6 7 8 | // 初始化動作,啓動程式時呼叫 function init() { if ( ON_DEVICE ) { document.addEventListener( "deviceready", onDeviceReady, false ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var gLocaleName; // 取得的區域名稱 function onDeviceReady() { // 因為Windows Phone 7不支援此API,所以做個區隔 if ( gDeviceName == ANDROID || gDeviceName == IOS ) { navigator.globalization.getLocaleName( function ( locale ) { gLocaleName = locale.value; }, function () { alert( "Error getting locale\n" ); } ); setDefaultLanguage( gLocaleName ); // 以區域名稱來設置語言 } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | // 設置預設語言 function setDefaultLanguage( language ) { if ( ON_DEVICE ) // 實機 { if ( language.toUpperCase().match( "TW" ) || language.toUpperCase().match( "HK" ) ) { gLanguageIndex = ZH; // 繁體中文 } else if ( language.toUpperCase().match( "CN" ) ) { gLanguageIndex = CN; // 簡體中文 } else if ( language.toUpperCase().match( "EN" ) ) { gLanguageIndex = EN; // 英文 } else if ( language.toUpperCase().match( "JA" ) ) { gLanguageIndex = JA; // 日文 } else if ( language.toUpperCase().match( "KO" ) ) { gLanguageIndex = KO; // 韓文 } else { gLanguageIndex = EN; // 實機的預設語言 } } else // 非實機 { gLanguageIndex = TW; // 非實機的預設語言 } } |
1 2 3 4 5 6 7 8 9 10 11 12 | // 進行回到上一頁的處理 function goBack() { if ( isStartPageNow() ) { navigator.app.exitApp(); // 以InvokeScript執行此句會造成例外 } else { showPage( START_PAGE ); // 秀出開始頁面 } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | void page_BackKeyPress( object sender, CancelEventArgs e ) { try { CordovaBrowser.InvokeScript( "goBack", "" ); // 若有例外發生代表正處於開始頁面 e.Cancel = true; // 取消預設回到上一頁的行為 return; } catch ( Exception ex ) { // 代表正處在開始頁面,故不處理繼續執行,以結束程式。 } // ------ 以下程式碼不動 ------ |