1. 程式人生 > >Android與html5互動 -- JavascriptInterface

Android與html5互動 -- JavascriptInterface

Android中使用WebView可載入html5,具體步驟如下:

(前提:本地Html5存放到assets資料夾下)

一:使用WebView載入Html5,簡單顯示

1:清單檔案中新增訪問許可權:android.permission.INTERNET

2:Activity中生成WebView元件,佈局檔案中新增<WebView>控制元件,或者動態新增

3:本地檔案html5中有js的話,webview必須設定支援js的屬性:webview.getSettings().setJavaScriptEnabled(true);  這裡可以設定其它屬性,隨後附上

4:使用WebView載入html5檔案 :

webView.loadUrl("file:///android_asset/XX.html");

二:WebView與html5之間的互動

<1>js呼叫Android中的函式

1:webView.addJavascriptInterface(obj,str);

引數一:android中的例項物件

引數二:js中別名

注:如果js中呼叫此物件的某方法,須在此公有方法前加上註解@JavascriptInterface,否則訪問不了,目前只知道這種寫法只能呼叫物件的方法。

如果不加webView.setWebChromeClient()這個方法,js中的alert對話方塊將不會提示。

2:js中使用str.xx()/window.str.xx()呼叫android中的方法

(Android中的list須轉換成json的字串形式傳入到js中,用eval(json)進行獲取)

<2>anroid中呼叫js的方法

1:js中編寫帶參或不帶參的方法 如function init(){alert("js中方法顯示");}

2:用webView.loadUrl("javascript:init()");進行呼叫顯示即可

三:webView載入html5全屏顯示解決辦法

1:<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable=no />

四:webView的屬性(必要的)

myWebView.getSettings().setJavaScriptEnabled(true);//可以使用js

myWebView.getSettings().setDefaultTextEncodingName("GBK");//設定編碼格式

myWebView.setWebViewClient(newWebViewClient());//限制在webview中開啟網頁,不用預設瀏覽器

myWebView.getSettings().setBuiltInZoomControls();//設定是否支援縮放

myWebView.addJavascriptInterface(obj,str);//向html頁面注入java物件,在Android4.2之

前並未限制此方法,根據java反射機制造成攻擊,所以在此版本之後則限制了js對java物件方法呼叫的權

限(必須宣告註解公共的方法才能被頁面呼叫)

在這裡宣告,如有不明確的地方請各位留言指教。

相關推薦

Androidhtml5互動 -- JavascriptInterface

Android中使用WebView可載入html5,具體步驟如下: (前提:本地Html5存放到assets資料夾下) 一:使用WebView載入Html5,簡單顯示 1:清單檔案中新增訪問許可權:android.permission.INTERNET 2:Activity

安卓混淆之後,androidjs互動異常原因

解決方案:需要js互動程式碼不被混淆掉,加入以下程式碼即可 -keepclassmembers class com.taohaohuo365.taohaohuo.activity.H5Activity$AndroidAndJSInterface { public *; } -keepcla

AndroidHTML5中的地理資訊定位,Android+Html5定位原理

在Android客戶端,地理資訊定位主要有GPS定位、基站定位、WIFI定位、A-GPS定位,各自的基本情況差不多是這個樣子的: 一、GPS定位:Global Positioning System,全球定位系統 原理:    基於衛星的定位,只要裝置有GPS定

AndroidJS互動

Android與JS的方法互調 在Android的開發過程中、遇到一個新需求、那就是讓Java程式碼和Javascript程式碼進行互動、在IOS中實現起來很麻煩、而在Android中相對來說容易多了、Android對這種互動進行了很好的封裝、我們可以很簡單的用

Androidjs互動,帶進度條的載入H5頁面

private void initWebView() { WebSettings settings = wvResumeDetail.getSettings(); //支援JavaScript指令碼語言 settings

androidHTML5相結合實現的省市縣三級聯動

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w

AndroidPHP互動:客戶端用HTTP協議服務端通訊

        為了實現Android客戶端和服務端的通訊,Android SDK為我們提供了Apache的HttpClient來方便我們使用各種HTTP服務。可以把HttpClient看成一個瀏覽器,通過它可以方便地發出GET請求和POST請求來獲得服務端響應。 下面我們

iOSHTML5互動方法總結

摘要 看了不少別人寫的部落格或者論壇,關於iOS與HTML5互動方法大概主要有5種方式: 1. 利用WKWebView進行互動(系統API) 2. 利用UIWebView進行互動(系統API) 3. 蘋果的javascriptcore.framework框架; 4. 跨平臺cordov

AndroidJS互動篇--JSBridge的使用

在android日常開發中,大家或多或少都會碰到原生巢狀web頁面,大家可以使用傳統的方式實現Native與JS的互動,這裡就不多介紹了,現在我們簡單介紹下網上目前比較流行的已經封裝好的框架JsBridge。可參考官網github地址:點選開啟連結先看下接下來將要實現的效果圖

android js互動

年後請了幾天假,今天第一天上班,這邊部落格本來應該年前寫的,唉。。太懶了 先扯點沒用的,總結下17年吧。 外包公司,專案倒是很多很雜,但總覺得論起細節、深度不夠,但也學習到了很多的東西,而且慶幸的是和三個android同事一起進步、成長,成了很好的朋友。空閒時間

android H5互動之基本

最基本的webView載入頁面 webView.loadUrl(url); 這裡面的url是String型別,可以載入本地的html頁面,如url =“file:///android_asset/index.html”; 載入網頁,如url =“www.baidu.co

簡化AndroidJS互動,JsBridge框架全面解析

今日科技快訊近日,滴滴順風車披露了一組數字,預測春運前後,跨城出行以7天為一個週期,呈“潮汐式”

Androidjs互動(四)自定義cordova外掛

首先昨天我做測試的時候js端一直無法呼叫寫在js的方法後來查了資料才知道是在index.html中使用js時 需要刪除這一行 <meta http-equiv="Content-Security-Policy" content="default-src 'self'

android伺服器互動總結(json,post,xUtils,Volley,Gson)

(最後一次更新2016 - 12 - 21) 更新內容:由於android 6.0完全拋棄了HttpClinet,所以,原生的網路請求,建議使用HttpURLConnection,本文的第三方框架,都是去年比較老的,現在xutils都更新到xutils3了,沒有大檔案的網

Android前端互動之JSBridge

    在app中,經常會遇到一些活動推廣的頁面,大多數活動具備時效性強、運營時間短的特徵,這些活動一般都是通過H5頁面快速投放到產品的活動模組,來和使用者進行互動。如何建立web頁面和本地Native頁面的深度互動,這就接下來要重點介紹的JSBridge,先看一個效果圖:圖

關於wkwebviewhtml5互動

       之前寫過web與html5的互動,那時的載體是UIWebview,基於uiwebview屬於比較老舊的網頁載體,且記憶體消耗比較大,故今日打算把UIWebview替換成WKwebview,起初只認為是換個類名那麼簡單,替換過程才發現,是自己想的太簡單了,下面來

WebView---Androidjs互動例項

Android 中可以通過webview來實現和js的互動,在程式中呼叫js程式碼,只需要將webview控制元件的支援js的屬性設定為true Android(Java)與JavaScript(HTML)互動有四種情況: 1) Android(Java)呼叫HTML中j

AndroidAndroid伺服器互動 POST上傳多個圖片檔案、文字內容 GET下載圖片

這裡伺服器端採用的是php解析內容 HTTP請求   HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 這幾種。用於資料互動的最基本方法一般為GET、POST、PUT、DELETE。對

AndroidJS互動監聽,url實時變化的方法.

private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view,

androidjs互動的方式(包括三種)

關於android月js或者說html互動的方式,在很早的版本中是通過android端新增js支援,然後傳遞一個js操作本地方法的物件,然後就可以呼叫本地的方法。在後邊的版本為了統一管理,添加了@JavascriptInterface  ,只有添加了這個標誌的方法才能被js