當前位置:首頁 » 網頁前端 » 微眾前端v2ex
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

微眾前端v2ex

發布時間: 2022-08-26 14:20:14

① 微眾雲這個軟體能做小程序嗎大概多少費用

1.申請小程序:300元(如果有已經認證過的公眾號就可以免費申請) 2.小程序開發:一般1000到幾萬不等、看具體要求。其實小程序開發價格主要取決於你要做多少頁面和要做的頁面和功能的復雜程度。如果是行業內比較成熟的標准化系統就會相對便宜點

② HTML5實現APP和原生方式有多大差距,多少坑

我試過用國內的 HBuilder + MUI 框架開發,也試過 Cordova + React for Web
開發。現在手上的某App,正在同步使用 Cordova + React 和 React Native 分別開發 UI
層(邏輯層代碼公用)。當然,都是小型應用,還不需要像 @李維特 寫的一樣考慮頁面切換等問題……

我的結論是:坑、好大的坑、虎紋大坑。

才疏學淺,只總結出以下問題:

1. 性能問題
先是動畫。
無論是 CSS3 動畫、還是 Canvas 動畫,還是 JavaScript 操作 DOM 的動畫,都卡;後者尤甚。高端機尚可,低端機是可以卡成幻燈片的。我錄過 GIF,使用的設備是台電P88,全志 CPU 。大概就是這樣:http://zsxsoft.qiniudn.com/upload_images/2015/08/201508158461_695.gif

其次,是 DOM 性能問題。
感謝 React 帶來了 Virtual DOM,部分解決了局部區域 DOM 刷新時的性能問題。不過,一旦涉及到較大區域 DOM 更新,反倒有更大的性能損耗(最終計算出來的結果還是要全部替換掉,多做了一步 Diff )。

因為性能問題,Facebook 2012年離開了 HTML5 App 陣營(Facebook: 「Betting on HTML5 Was a Mistake」)。但時至今日,還是沒有什麼改善。也分享一篇文章,可以看看坑:移動端HTML5游戲性能優化。
這里有個例子:微眾銀行 App 是 Cordova + Ionic + Angular。微眾很行app十分卡頓,大家覺得么?

2. 兼容問題
先只算官方系統。Android系統的 WebView 一般隨 Android 版本更新(當然,也可以自己去 Play Store 更新),每個版本所支持的功能均不同。坑的是,在國內的環境下,基本不會再更新了。有的功能,在 PC 上對應版本的Chrome 是有的,到該版本 WebView 就沒有了。
比如說,XMLHttpRequest 的 onprogress 在 Android 4.0.4 上不被支持。於是,針對這類系統,只能採用像之前對 IE 的 Hack 一樣,用 iframe 來替代進度條。
再比如說,ECMAScript 6 被高版本 WebView 支持。如果開發者寫慣了後,引入了 Symbol 等,又忘記了 polyfill 。在低版本 WebView 就會出錯。就像我這樣:<Table> doesn't support old browsers. · Issue #1685 · callemall/material-ui · GitHub
接著呢,感謝 ROM 廠商亂改系統自帶的 WebView ,從而導致在各種小細節上不同手機的顯示效果或運算結果不同。更倒霉的是,有的甚至還會全頁面混亂。
怎麼解決?個人認為,像微信那樣自帶一個 X5,也許算是一個解決方案吧。

至於兼容問題的例子,還是微眾銀行好了:https://www.v2ex.com/t/215728 (與新版 iOS 9 的 WebView 不兼容)

3. 調試問題
先吐槽:Android 5.0+ 的系統內的 WebView ,可以用 Chrome for PC 來調試。但需要翻牆。

調試分調試 JavaScript 和界面兩方面。
JavaScript
方面,如果 throw 出一個錯誤,很可能剩下的事情你都幹不了了。手機端的表現就是什麼操作都沒用,也不會崩潰退出之類。在開發時,對於
JavaScript 報錯,MUI 和 Cordova 均可以通過 adb logcat 來檢查報錯;Release 後可就沒辦法找用戶連
USB 了。weinre 等工具對於 JavaScript Debug 沒啥用。
那 weinre 幹啥用?只是讓你看 DOM 層級或動態執行代碼罷了。這就是 UI 方面的調試了。這部分的話,考慮到兼容問題,自求多福吧……

Cordova 提供了 Ripple,倒的確是一個很不錯的解決方案。但是並不能涵蓋所有的手機……

4. 代碼安全性問題

如.apk -> .dex -> .jar -> .class -> .java一下就能把代碼全部拿出來看一樣,.apk
-> .js 更為方便,解壓一下就好了。於是,在 Release 前,必須 gulp / grunt 構建工作流,把 uglify
之類全部一股腦塞進去。這部分和做網頁前端沒啥區別,差別大概只有不需要考慮代碼切分等(畢竟沒有網路,全在本地)。
然而,這樣的代碼,修改成本非常低。比如我做一個付費的本地游戲,只要簡單地修改一下.js,輕輕鬆鬆破解驗證等後重新打包回去,破解版游戲就做好了,比 Java 的簡單多了。就算有 C++,我 js 不調用你,你又奈我何?沒有伺服器驗證的話,玩蛋去吧。

5. 功能問題
如果沒有 Native Code,一切HTML5 App都是空架子。所以,Java / Objective-C / C#仍然是必須學習的語言;Native App 如何開發也仍然是必修。比如以下代碼,就是在 MUI 里用原生瀏覽器打開一個鏈接。
function openInBrowser(originalUri) {
var Intent = plus.android.importClass("android.content.Intent");
var main = plus.android.runtimeMainActivity();
var Uri = plus.android.importClass("android.net.Uri");
var uri = Uri.parse(originalUri);
var intent = new Intent(Intent.ACTION_VIEW, uri);
main.startActivity(intent);
}

當然,Cordova 就得寫 plugin 了,更為繁雜。

③ HTML5實現APP和原生方式有多大差距,多少坑

才疏學淺,只總結出以下問題:

1. 性能問題
先是動畫。
無論是 CSS3 動畫、還是 Canvas 動畫,還是 JavaScript 操作 DOM 的動畫,都卡;後者尤甚。高端機尚可,低端機是可以卡成幻燈片的。我錄過 GIF,使用的設備是台電P88,全志 CPU 。大概就是這樣:

其次,是 DOM 性能問題。
感謝 React 帶來了 Virtual DOM,部分解決了局部區域 DOM 刷新時的性能問題。不過,一旦涉及到較大區域 DOM 更新,反倒有更大的性能損耗(最終計算出來的結果還是要全部替換掉,多做了一步 Diff )。

因為性能問題,Facebook 2012年離開了 HTML5 App 陣營(Facebook: 「Betting on HTML5 Was a Mistake」)。但時至今日,還是沒有什麼改善。也分享一篇文章,可以看看坑:移動端HTML5游戲性能優化。
這里有個例子:微眾銀行 App 是 Cordova + Ionic + Angular。微眾很行app十分卡頓,大家覺得么?

2. 兼容問題
先只算官方系統。Android系統的 WebView 一般隨 Android 版本更新(當然,也可以自己去 Play Store 更新),每個版本所支持的功能均不同。坑的是,在國內的環境下,基本不會再更新了。有的功能,在 PC 上對應版本的Chrome 是有的,到該版本 WebView 就沒有了。
比如說,XMLHttpRequest 的 onprogress 在 Android 4.0.4 上不被支持。於是,針對這類系統,只能採用像之前對 IE 的 Hack 一樣,用 iframe 來替代進度條。
再比如說,ECMAScript 6 被高版本 WebView 支持。如果開發者寫慣了後,引入了 Symbol 等,又忘記了 polyfill 。在低版本 WebView 就會出錯。就像我這樣:<Table> doesn't support old browsers. · Issue #1685 · callemall/material-ui · GitHub
接著呢,感謝 ROM 廠商亂改系統自帶的 WebView ,從而導致在各種小細節上不同手機的顯示效果或運算結果不同。更倒霉的是,有的甚至還會全頁面混亂。
怎麼解決?個人認為,像微信那樣自帶一個 X5,也許算是一個解決方案吧。

至於兼容問題的例子,還是微眾銀行好了:https://www.v2ex.com/t/215728 (與新版 iOS 9 的 WebView 不兼容)

3. 調試問題
先吐槽:Android 5.0+ 的系統內的 WebView ,可以用 Chrome for PC 來調試。但需要翻牆。

調試分調試 JavaScript 和界面兩方面。
JavaScript 方面,如果 throw 出一個錯誤,很可能剩下的事情你都幹不了了。手機端的表現就是什麼操作都沒用,也不會崩潰退出之類。在開發時,對於 JavaScript 報錯,MUI 和 Cordova 均可以通過 adb logcat 來檢查報錯;Release 後可就沒辦法找用戶連 USB 了。weinre 等工具對於 JavaScript Debug 沒啥用。
那 weinre 幹啥用?只是讓你看 DOM 層級或動態執行代碼罷了。這就是 UI 方面的調試了。這部分的話,考慮到兼容問題,自求多福吧……

Cordova 提供了 Ripple,倒的確是一個很不錯的解決方案。但是並不能涵蓋所有的手機……

4. 代碼安全性問題
正如.apk -> .dex -> .jar -> .class -> .java一下就能把代碼全部拿出來看一樣,.apk -> .js 更為方便,解壓一下就好了。於是,在 Release 前,必須 gulp / grunt 構建工作流,把 uglify 之類全部一股腦塞進去。這部分和做網頁前端沒啥區別,差別大概只有不需要考慮代碼切分等(畢竟沒有網路,全在本地)。
然而,這樣的代碼,修改成本非常低。比如我做一個付費的本地游戲,只要簡單地修改一下.js,輕輕鬆鬆破解驗證等後重新打包回去,破解版游戲就做好了,比 Java 的簡單多了。就算有 C++,我 js 不調用你,你又奈我何?沒有伺服器驗證的話,玩蛋去吧。

5. 功能問題
如果沒有 Native Code,一切HTML5 App都是空架子。所以,Java / Objective-C / C#仍然是必須學習的語言;Native App 如何開發也仍然是必修。比如以下代碼,就是在 MUI 里用原生瀏覽器打開一個鏈接。

④ 微眾銀行獲取token失敗是什麼

一般是你的用戶名密碼不正確,或者後台伺服器錯誤或者其他問題。
Token是在服務端產生的,如果前端使用用戶名/密碼向服務端請求認證,服務端認證成功,那麼在服務端會返回token給前端,前端可以在每次請求的時候帶上token證明自己的合法地位。如果這個Token 在服務端持久化(比如存入資料庫),那它就是一個永久的身份令牌。