Ⅰ android原生登錄使用webview訪問h5 同步登錄狀態
目前使用的方案:
h5通過js和app交互調用app的token
2.拿到token後使用ajax做非同步登錄並刷新頁面
目前的缺點:
1.會多次刷新頁面
2.通過js調用時H5需要做部分改動
優化的方向:
A.APP登陸狀態的變化是請求頁面,登錄後使用webview調用對應域名下的介面實現H5的登錄
B.每次請求H5url增加get登陸的信息,例如訪問 index.php變成 index.php?a=xxx 通過附加信 息同步登錄狀態
優化的方案不知道那個更好一點
Ⅱ 微信小程序給webview傳個參數
你從上個頁面來到webView的時候將id參數傳到webView當前頁面,也或者你直接將帶id參數的url拼接好傳過來,然後webView頁面在onload裡面獲取參數,如果只傳id,那麼就通過options.id獲取到傳過來的id然後拼接url,再setData,如果直接傳拼接過來的url,那麼就直接options.url 再setData就行了
Ⅲ app 與 內嵌webview同步登錄狀態,有哪些解決方案安全性如何
目前使用的方案:
1.h5通過js和app交互調用app的token
2.拿到token後使用ajax做非同步登錄並刷新頁面
目前的缺點:
1.會多次刷新頁面
2.通過js調用時H5需要做部分改動
優化的方向:
A.APP登陸狀態的變化是請求頁面,登錄後使用webview調用對應域名下的介面實現H5的登錄
B.每次請求H5url增加get登陸的信息,例如訪問 index.php變成 index.php?a=xxx 通過附加信 息同步登錄狀態
優化的方案不知道那個更好一點
Ⅳ 安卓編程webview怎樣載入一個網頁並修改後再顯示出來
WebView(網路視圖)能載入顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎載入顯示網頁,實現WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.調用Activity的setContentView( )方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加許可權,否則會出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET" />
第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實例化WebView
3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁
4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置 WebView視圖
5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加許可權,否則出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET"/>
Ⅳ 怎樣實現android應用向網頁發送數據,在網頁中用php代碼接收所發來的數據
不知道樓主懂不懂 javascript ,會php js應該不賴哈 哈哈!
android已經給你提供了 javascript 調用介面!
我這里就不寫網頁程序了啊 ,懶的敲的
就是使用webview載入網頁,然後android本地程序和webview網頁裡面的js進行交互
實力話一個WebVIew 比如對象名為:webview 調用其中的方法 setJavascritEnable(true);
1:android客戶端程序 調用webview裡面的js程序
webview.loadUrl("javascripot:test()");
這個時候他就會調用你網頁裡面javascript代碼當中的test方法
2:通過網頁中的javascript代碼進行調用本地 android程序
mWebView.addJavascriptInterface(new Object() {
public void heiHei() {
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(Test.this, "測試調用java", Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
括弧裡面demo 就是偽造的一個dom對象的名字
然後通過 window.demo.heiHei()方法 就可以調用 本地android中代碼了
如:
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
最後:傳參我就不說了 ,相信你如果看懂以上的,基本你就可以實現你說的,傳參也一樣!
親,給分兒吧!手敲的啊!
Ⅵ PHP如何判斷訪問來源是微信小程序webview
type: 必填項;必須是 miniprogram ,表示小程序類型;這個參數是小程序出來後新增的類型。
Ⅶ 移動前端開發和 Web 前端開發的區別是什麼
1、要弄清區別,首先要知道前端和後端的概念:
1)Web前端: 顧名思義是來做Web的前端的。這里所說的前端泛指Web前端,也就是在Web應用中用戶可以看得見碰得著的東西。包括Web頁面的結構、Web的外觀視覺表現以及Web層面的交互實現。
2)Web後端:後端更多的是與資料庫進行交互以處理相應的業務邏輯。需要考慮的是如何實現功能、數據的存取、平台的穩定性與性能等。
2、實際的開發過程中,前端、後端開發人員所要具備的技能:
1)前端開發人員:精通JS,能熟練應用JQuery,懂CSS,能熟練運用這些知識,進行交互效果的開發。
2)後端開發人員:會寫Java代碼,會寫SQL語句,能做簡單的資料庫設計,會Spring和iBatis,懂一些設計模式等。
3、總結:
web前端分為網頁設計師、網頁美工、web前端開發工程師
首先網頁設計師是對網頁的架構、色彩以及網站的整體頁面代碼負責
網頁美工只針對UI這塊的東西,比如網站是否做的漂亮
web前端開發工程師是負責交互設計的,需要和程序員進行交互設計的配合。
web前端需要掌握的有腳本技術javascript DIV+CSS現下最流行的頁面搭建技術,ajax和jquery以及簡單的後端程序等。 後端的話可供開發的語言有 asp、php、jsp、.NET 這些後端開發語言的話搭建環境都不一樣
Ⅷ 如何通過WebView監控提升WebAPP性能
相對於需要專業移動開發人員的原生應用(Native APP),基於HTML5/CSS/JavaScript的WebAPP憑借開發者門檻低、迭代迅速、支持跨平台發布等特點,成為電商、銀行等網路服務、瀏覽類應用的首選,然而由於頁面渲染導致的性能差距是WebAPP與原生應用無法抗衡的最大原因,因此針對WebView組件的性能優化就顯得至關重要。
為什麼是WebView
WebAPP所顯示的Web頁面都是由一個叫做WebView的組件渲染出來的,每個網頁都有一個鏈接即URL,首先將URL轉換成NSURLRequest,然後用載入網頁的類WebView載入Request,使用 - (void)loadRequest:(NSURLRequest *)request這個方法,就能將網頁載入顯示出來。
目前iOS中有兩個載入網頁的類,分別是UIWebView和WKWebView,UIWebView是UIKit框架中的一個類,而WKWebView是WebKit框架中的類,從性能上來說WKWebView的性能高、穩定性好、佔用內存小,完全優於UIWebView。但由於WKWebView是iOS8提供的組件,因此系統版本低於iOS 8.0的iPhone/iPad用戶就無法正常使用WKWebView組件開發出來的APP。所以目前大部分開發人員還在使用性能、穩定性並不理想的UIWebView進行WebAPP開發,而本文所說的雲智慧透視寶WebView性能監控也是以UIWebView為主要優化目標。
要進行性能監控必須獲得WebAPP頁面載入全過程的性能數據,透視寶是通過向當前載入鏈接的html5、jsp、php網頁代碼中注入獲取數據的JS代碼,然後通過OC與JS交互,將數據傳遞給OC,然後再將數據整理發送到透視寶後端。
監控哪些WebView性能數據
透視寶能監控四大類數據:
行為數據:抓取用戶在移動端網頁點的行為操作,也就是點擊網頁的內容,分析用戶的行為
時間相應數據:分解一個鏈接從載入開始到完成這段時間內,每個階段的耗時
Ajax請求數據:抓取終端用戶響應時間,響應數據下載時間,數據響應成功的callback執行時間和ajax錯誤數據
JS錯誤數據:抓取載入鏈接的代碼錯誤信息
① 時間響應數據及數據計算公式
(圖片來源:51cto技術博客)
參見上圖,JS傳給透視寶的時間響應數據就是這些欄位,其中navigationStart是起點,所有的計算都需要依賴於它。分析移動端H5性能數據,其實就是測算HTML5、JSP、PHP等網頁元素在iOS上載入的時間長短,通過這些性能數據前段開發人員能夠准確發現性能問題並及時解決,下表是透視寶定義的響應時間分解數據及計算方案:
② 資源時序數據
每一個網頁都是有很多資源組成的,包括.js、.png、.jpg、.css、script等,每一個元素的載入都需要載入時間,資源時序數據就是准確記錄每一個元素的載入時間及類型,並把這些數據通過JS的performance介面直接獲得並傳給OC,不需要計算。
③ JS錯誤及ajax請求數據
JS錯誤指的是抓取網頁代碼的錯誤,包括錯誤類型及堆棧信息,直接定位錯誤。ajax請求的數據有請求的鏈接、uri、 終端用戶響應時間,響應數據下載時間,數據響應成功的callback執行時間和ajax錯誤數據。JS錯誤和ajax請求數據都是有JS代碼直接獲取到,不需要處理。
JS代碼注入
想要准確監測網頁性能就需要進行代碼注入,而只有拿到網頁的代碼才能注入, UIWebView這個類裡面除了三個載入鏈接的方法和4個代理方法,就沒有其他內容了,而這些方法並不能獲取到內容,所以我們就需要考慮其他方法。UIWebView在載入攔截的時候會進入NSURLProtocol這個類,而恰好這個類能拿到當前載入鏈接NSURLRequest,而且會走進這個類的 - (void)startLoading方法,這個方法在頁面load完成之前,頁面剛載入之後,所以就是我們所需要的。
創建一個類,繼承NSURLProtocol這個類,重寫startLoading方法,由於能拿到鏈接的request,所以我們就對這個鏈接發送請求,用原生態的NSURLConnection或者NSURLSession都可以,我們用的NSURLConnection這個類發送請求並設置代理,方法是這個 - (nullableinstancetype)initWithRequest:(NSURLRequest*)request delegate:(nullableid)delegate startImmediately:(BOOL)startImmediately,
NSURLConnection的代理方法中有一個能接受請求鏈接數據的方法, - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data,得到的NSData是16進制的位元組流數據,通過utf8轉碼將位元組流轉換成字元串,然後發現這個字元串正好是這個當前載入網頁的代碼,
網頁代碼都是由標簽組成,都會有<head>這個標簽,我們就把JS代碼注入到<head>標簽之下,放在自己添加的<script>標簽中;代碼實現就是獲取字元串中<head>這個字元的位置,然後在其下面插入用<script>包裝的js代碼,然後轉回成新的NSData的位元組流數據。
由於頁面還沒有載入,我們已經改動代碼了,就需要把注入JS代碼的重新記載一次,需要用NSURLProtocol的代理屬性NSURLProtocolClient,用NSURLProtocolClient這個中的這個方法- (void)URLProtocol:(NSURLProtocol*)protocol didLoadData:(NSData*)data,將新的NSData載入一次,轉回成NSData是因為這個方法需要的是NSData數據。
當然上面只是介紹主要實現的一些方法,還需要用到NSURLConnection的其他代理方法,只是這些方法不需要添加什麼,按照常規處理就行了,就不一一介紹了。
性能數據獲取
載入鏈接過程中JS代碼就會通過performance介面獲取數據,然後獲取的這些數據需要傳給移動端,如何傳遞數據呢,傳遞數據的過程也叫OC與JS交互的過程。
獲取數據的時機:
由於不清楚什麼時候JS能拿到數據,所以從最開始就需要進行交互的監控,也就是載入鏈接的時候,因為透視寶SDK用來監控的所以我們不能直接使用這個方法,需要用到OC的運行時,動態載入機制,又叫hook。首先通過添加UIWebView的類目,添加類目是將UIWebView類的實現分散出來,每個類都是由NSbject繼承下去,所以每個類都有 (void)load方法,而且這個方法的執行是最早的,我們就在這個方法中使用OC的運行時runtime,使用一個方法交換UIWebView載入鏈接的三個方法的指針,這樣就會在執行載入方法之前執行我們交換出來的方法,在這個方法裡面我們傳遞一個與JS匹配的標識,通過標識相同來獲取數據,這樣做的目的就是能從最開始就監控數據的傳遞。
Ⅸ h5+php開發android
php是不能放到手機上運行的,php要放到伺服器上
可以用你的電腦建一個能運行php的伺服器,然後在電腦上用chrome調試
但是你要明白,php的文件是不能在安卓手機上運行,必須把php放到伺服器上,然後用webview組件通過url地址訪問這個php文件
Ⅹ 相同的請求,php怎麼判斷來自wap還是app的webview載入
你是想做APP開發嗎,你APP訪問的時候在請求頭那加些特殊的數據來提交,伺服器那邊判斷一下