1. 程式人生 > >關於Android WebView對JS與href支援

關於Android WebView對JS與href支援

WebView 支援javascript,但只限於本地的js程式碼,不提供如PC瀏覽器一樣強大功能遞迴下載功能(可能也是因為手機自身的儲存有限所致)。

因此,開發基於JS的Anroid程式不能依靠PC瀏覽器的這種功能,只能執行本地js,css程式碼。

曾經嘗試在Anroid中利用如下的程式碼,失敗

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>修改地圖狀態</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script>


</head>
<body>

<img src="http://map.baidu.com/mobile/img/logo.png"/>
<div style="width:520px;height:340px;border:1px solid gray" id="container"></div>
</body>
</html>
<script type="text/javascript">
  var map = new BMap.Map("container");                // 建立Map例項
  var point = new BMap.Point(116.403765, 39.914850);  // 建立點座標
  map.centerAndZoom(point,15);                        // 設定中心點座標,和地圖級別。更重要的是初始化地圖
  setTimeout(function(){
    map.panTo(new BMap.Point(116.409, 39.918));
  }, 2000);

</script>

因此,要想Anroid中能夠執行js效果更好,只能通過硬編碼的方式將資源放到html文字中:例如

background-image: url(data:image/gif;base64,AAAA)方式表示一幅圖:


其中:
data: ----獲取資料型別名稱
image/gif; -----指資料型別名稱
base64 -----指編碼模式
AAAAA ------指編碼以後的結果。
background-image: url(data:image/gif;base64,AAAA)這句話的意思總體就是“獲取資料型別是image gif檔案,編碼採用ASCII 字元,ASCII編碼內容是‘AAAA’”
圖片本身就已經以ASCII的形式存在了文件中,只需要瀏覽器進行編譯就可以了。

同理:

相關推薦

關於Android WebViewJShref支援

WebView 支援javascript,但只限於本地的js程式碼,不提供如PC瀏覽器一樣強大功能遞迴下載功能(可能也是因為手機自身的儲存有限所致)。 因此,開發基於JS的Anroid程式不能依靠PC瀏覽器的這種功能,只能執行本地js,css程式碼。 曾經嘗試在Anroid

Android Webview優化及Js互動

在做的一個專案裡主要是webview載入HTML頁面,移動端工作量不多,主要是webview的優化問題,雖說看似很簡單,但仍遇到了幾個令人頭疼的問題。 問題解決及優化之路主要經歷了以下幾個過程: 1、第一次開啟webview耗時過長 剛開始在做webvie

Android WebView注入js檔案,判斷當前HTML有沒有某個js然後再注入

Android WebView注入js檔案,判斷當前HTML有沒有某個js然後再注入 1.注入js程式碼 判斷當前有沒有jQuery檔案引入,然後再進行注入。 判斷依據其實很簡單,獲取script 的dom物件 判斷src的值 進行遍歷就行了。 (function () {

Android webViewjs互動

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layo

Android WebViewjs互動方式原理總結

webView.loadUrl("javascript:console(" + "'Hello,China!'" + ")""); 二、js注入實現 先來說說原理吧,當js呼叫prompt()方法時,WebChromeClient.onJsPrompt()方法會被觸發,當js觸發Android提供的介面方法時

Android WebViewJs物件注入漏洞解決方案(JSBridge存在的意義)

最近在做一個專案過程中,發現了一個很嚴重的安全漏洞,這個漏洞是烏雲平臺(http://www.wooyun.org)報告出來的。 1,使用場景 我們很多時候要使用WebView來展示一個網頁,現在很多應用為了做到服務端可控,很多結果頁都是網頁的,而不是本地實現,這樣做有很多好處,比如介面的改變不需要重新發布

Android WebView中HeaderCookie應用場景深入剖析

首先回顧一下Cookie與Header這兩個重要的概念,不太清楚的話可以看我之前的部落格或者查詢一下相關的資料:這裡將兩者在Android平臺上做一個簡單的對比:Header:                   客戶端向伺服器傳送請求,在請求頭中包含請求方法,協議版本,客戶

Android WebView的使用集錦(支援Html5)

WebView配置: WebSettings webSettings = webView.getSettings(); // 支援javascript webSettings.setJavaScriptEnabled(true); // 支援使用localStorage(H5頁面的支援) webSet

Android hybrid之JSNative的通訊方式

場景 為了降低開發成本和跨平臺一致性的使用者體驗.通常敏捷開發中通常採用混合型應用Hybrid App(Native View與WebView交替呼叫),而Js作為Html頁面中常用的邏輯處理指令碼,掌握JS和Java的相互通訊是非常重要的! 操作步驟

Android webview呼叫js程式碼無效 webView.loadUrl("javascript:alert('hello')")

1) WebSettings設定支援javascript mWebView.getSettings().<span style="font-family: STHeiti;">setJavaScriptEnabled(true);</span> 2) 在執行指令碼前,要有docum

關於android webview讀取js全域性變數或者函式返回值

背景:藉助現有介面技術,js可以執行原生java程式碼中的方法,可以得到方法的返回值,可以讓原生java程式碼在主執行緒中動態的操作UI;但是藉助該介面,原生java程式碼,採用webview.loadUrl("javascript: JsFunctionName"),只

Android x86native ARM的支援

之前入手聯想 K800 這款使用 Intel x86 CPU 的手機時考慮過一個問題,就是 Android x86 對於已有的 Android 程式的相容問題問題,特別是對於一些使用了 native ARM 程式碼的程式(以遊戲居多),因為不可能原來所有的程式都可以及時

Xamarin.Android 水平垂直

layout view color 添加屬性 style match rap mar horizon 水平對齊: 1、LinearLayout添加屬性:android:orientation="vertical"; 2、元件添加屬性:android:layout_gra

Android開發之Webview中原生JS互動

文章目錄 概述 使用場景 互動方式 Java呼叫JS程式碼 JS呼叫Java程式碼 總結 概述 由於手機硬體資源的快速提升,使得采用混合開發的可能性逐漸成為現實並且流行起來。Android開發中

Android WebView JS的資料互動

關於WebView 我們知道目前android市場上的一些應用採用的開發方式大致分為三種:Native App、Web App、Hybrid App。本文主要是Hybrid App中實現的主要技術

Jsandroid webview遭遇過的坑

Uncaught TypeError: Object [object Object] has no method 可能產生該情況有幾種可能 1、安全限制問題 如果只在4.2版本以上的機器出問題,那麼就是系統處於安全限制的問題了。Android文件這

Android WebViewJS互動及訊息處理

一、WebView與JS互動 1.JS呼叫本地方法 這個功能的實現還是比較容易的。直接呼叫WebView的該方法就可以新增介面了,不過先要啟動互動 ? 1 2 3 4 // 啟用javascript  mWebView.getSettin

Android webViewjs 互動以及jsbridge框架原始碼分析

1.簡單篇 如何實現簡單的android 呼叫js 與js呼叫android 讓webview做一下操作 private void init(Context context){ WebSettings setting =

Android webviewjs互動上傳圖片

最近專案中用到webview,並且有上傳圖片功能,iOS不用做任何處理,但Android就不行了,調不到相簿,後百度才知道這是Android webview的侷限性,需要自己擴充套件WebChromeClient來實現,話不多說直接上程式碼: 第一步:擴充套件WebChro

Android JSWebView互動存在的一些問題

一、背景概述 2013年Android平臺暴露出WebView漏洞。利用該漏洞,攻擊者可以通過存在風險的addJavascriptInterface介面函式提供的擴充套件穿透webkit執行本地Java程式碼,造成惡意程式碼在受害人的手機上執行,並可能進一步執行木馬。 目