无码人妻精一区二区三区,eeuss影院www在线观看,无码精品久久久久久人妻中字,日韩av高清在线看片

推薦新聞
VS2015(Xamarin)開(kāi)發(fā)安卓WebApp筆記
發(fā)布者:深藍(lán)互聯(lián)
發(fā)布時(shí)間:2019-11-25
點(diǎn)擊:次

有關(guān)WebApp的開(kāi)發(fā),大多數(shù)人都用了第三方框架,如Cordova等。我這里沒(méi)有用到這類框架,而是新建了一個(gè)WebView嵌入Assets(本地資源)來(lái)完成這個(gè)App,由于第一個(gè)練習(xí)App希望對(duì)初學(xué)者有所幫助。

這是一個(gè)快遞快速查詢的App,現(xiàn)在添加了幾個(gè)比較火的快遞,調(diào)用查詢接口來(lái)自kuaidi100(有一定概率查詢出錯(cuò),估計(jì)是屏蔽措施,多查幾次),前端UI采用frozenui(騰訊團(tuán)隊(duì)),入門(mén)快demo齊全

先來(lái)效果圖

 

1、權(quán)限配置,既然是最快遞查詢,攝像頭權(quán)限是必不可少。查詢歷史等最好也要存起來(lái),我這里通過(guò)sqlite存到了sd卡。

復(fù)制代碼
manifest節(jié)點(diǎn)下
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

復(fù)制代碼

 

2、OnCreate初始化

復(fù)制代碼
            SetContentView(Resource.Layout.Main);
            webView = (WebView)FindViewById(Resource.Id.webView);
            try
            {
                var dbPath = "/sdcard/zExpress/";
                var dbFileName = "express.db";
          //初始化sqlite本地庫(kù),將來(lái)升級(jí)加表
                Common.InitDBAndUpdate(dbPath, dbFileName);
                //html通過(guò)js訪問(wèn)后臺(tái)C#
                webView.AddJavascriptInterface(new WebInterface(this, dbPath, dbFileName, webView) as Java.Lang.Object, "CSharp");
                //避免html
                webView.SetWebViewClient(new CommonWebViewClient());
          //js權(quán)限 
                WebSettings settings = webView.Settings;
                settings.JavaScriptEnabled = true;
                settings.JavaScriptCanOpenWindowsAutomatically = true;
                
                webView.LoadData("", "text/html", "utf-8");
                webView.LoadUrl("file:///android_asset/index.html");
            }
            catch (Exception e)
            {
                Common.Log("OnCreate", e.Message + "\n" + e.StackTrace);
            }
復(fù)制代碼

 

3、非首頁(yè)按返回應(yīng)該是webview頁(yè)面返回,在首頁(yè)按兩次返回鍵退出,以下是OnKeyDown代碼

復(fù)制代碼
            //webView返回 ,首頁(yè)點(diǎn)返回 不做 webView返回處理,應(yīng)該是退出
            if (e.Action == KeyEventActions.Down && keyCode == Keycode.Back && webView.CanGoBack() && !webView.Url.ToLower().EndsWith("index.html"))
            {
                webView.GoBack();   //后退
                return true;    //已處理
            }

            //再按一次退出程序
            if (keyCode == Keycode.Back && e.Action == KeyEventActions.Down)
            {
                if (!lastBackKeyDownTime.HasValue || DateTime.Now - lastBackKeyDownTime.Value > new TimeSpan(0, 0, 2))
                {
                    Toast.MakeText(this.ApplicationContext, "再按一次退出程序", ToastLength.Short).Show();
                    lastBackKeyDownTime = DateTime.Now;
                }
                else
                {
                    Finish();
                }
                return true;
            }
            return base.OnKeyDown(keyCode, e);
復(fù)制代碼

 

4、js插件選取zepto(用法與jQuery一致,而且針對(duì)移動(dòng)端優(yōu)化),移動(dòng)端觸摸tap取代click

會(huì)jQuery就能零基礎(chǔ)使用zepto;關(guān)于click事件將會(huì)有300毫秒延遲,也是一部分人覺(jué)得web在移動(dòng)端響應(yīng)非常慢的原因之一,這是由于很久以前為了解決兼容pc的click事件與觸摸雙擊沖突出現(xiàn)的。按理說(shuō)應(yīng)該用touchstart、touchend結(jié)合處理。這里用tap解決了很多問(wèn)題,你不會(huì)發(fā)現(xiàn)有延遲。

 

5、為什么打包這么大apk

原本我引用ExfSoft.Json(很小的json插件)、Mono.Data.Sqlite生成只有不到4MB,但是掃碼插件Zxing引入后暴漲到接近10MB

 

6、引用Zxing掃碼生成報(bào)錯(cuò)問(wèn)題(沒(méi)VPN)

剛引入Zxing即使不使用生成都會(huì)報(bào)錯(cuò)(本人報(bào)的還是亂碼),清理解決方案再生成可以發(fā)現(xiàn)提示連接到谷歌下載android_m2repository_r16.zip失敗,并提示本地路徑C:\Users\你的用戶名\AppData\Local\Xamarin\Android.Support.v4\版本號(hào),里面有個(gè)0kb的android_m2repository_r16.zip文件,請(qǐng)翻墻下載這個(gè)文件粘貼到這里。

 

提示:安裝vs2015會(huì)聯(lián)網(wǎng),沒(méi)有VPN安裝十分漫長(zhǎng),我這里的webApp只是主要完成了功能,界面切換如果需要?jiǎng)赢?huà)還需要優(yōu)化

編譯后的apk、源碼、android_m2repository_r16.zip,請(qǐng)移步云盤(pán)

鏈接: http://pan.baidu.com/s/1bokyrZh 密碼: weye

 

補(bǔ)充:Zxing、Support.V4  鏈接:http://pan.baidu.com/s/1boapdAv 密碼: 8w3s

 

關(guān)注深藍(lán)互聯(lián)公眾號(hào)
Copyright ? 2013-2025 深藍(lán)互聯(lián) 版權(quán)所有
友情鏈接: