1. 程式人生 > >Android本地App與html5的互動

Android本地App與html5的互動

介紹:

Android的開發中除了本地app的處理外,有時需要與html5的互動,與html5的互動無非兩種情況。
1:html5呼叫app本地的方法。
例如,在一個網頁上點選一個分享按鈕控制元件,這時會彈出本地原生的一鍵分享介面,通過html5呼叫本地方法將值傳給本地分享所需的值。
2:app呼叫html5的javaScript方法。
同樣是分享,例如,在app上原生介面上點選分享按鈕然後呼叫html5的javaScript方法,javaScript方法裡面在呼叫本地原生的一鍵分享介面。

如何使用:

wv_demo.loadUrl(url);
wv_demo.setWebViewClient(new
webViewClient()); wv_demo.getSettings().setJavaScriptEnabled(true); wv_demo.addJavascriptInterface (new mJavaScriptinterface(), "JSmeg"); //javaScript調android本地方法 class mJavaScriptinterface { @JavascriptInterface //不能缺少 public void getShareInfo(String desc, String url, String title, String img)
{ //本地方法 }} private class webViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url)
{ super.onPageFinished(view, url); }}

html5呼叫app本地的方法,JSmeg是html5上的javaScript方法裡面的關鍵字,通過這個關鍵字將app本地方法繫結到一塊,呼叫本地getShareInfo方法。

js = "var newscript = document.createElement(\"script\");";
js += "newscript.src=\"http://www.test.com/resource/js/androidgetinfo.js\";";
js += "document.body.appendChild(newscript);";
wv_demo.loadUrl(url);
wv_demo.setWebViewClient(new webViewClient());
wv_demo.getSettings().setJavaScriptEnabled(true);

bt_test1.setOnClickListener(new View.OnClickListener() {    
@Override    
public void onClick(View v) {        
    mHandler.post(new Runnable() {            
    @Override            
    public void run() {
        wv_demo.loadUrl("javascript:androidGetInfo()");
        //Android本地呼叫html中的javaScript 函式            
           }       
      });  
   }});

private class webViewClient extends WebViewClient {    
    @Override    
  public boolean shouldOverrideUrlLoading(WebView view, String url) {       
   view.loadUrl(url);        
   return true;    
}    
@Override    
public void onPageFinished(WebView view, String url) {           
   super.onPageFinished(view, url);   
   wv_demo.loadUrl("javascript:" + js);
  //載入網路javascript方法 
 }}

app呼叫html5的javaScript方法,首先app在onPageFinished方法裡面先載入javaScript方法,然後在app本地按鈕監聽方法裡面呼叫html中的javaScript 函式。

相關推薦

Android本地Apphtml5互動

介紹: Android的開發中除了本地app的處理外,有時需要與html5的互動,與html5的互動無非兩種情況。 1:html5呼叫app本地的方法。 例如,在一個網頁上點選一個分享按鈕控制元件,這時會彈出本地原生的一鍵分享介面,通過html5呼叫本地方法將值傳給本地分

AndroidAppApp之間的互動

今天剛好公司有一個Android無介面外掛化的列印App需求,隨便在這裡寫下一點心得 知識點分析: 無介面 可比本公司的其他App任意呼叫 隱藏App的啟動圖示 一. 外掛App: (一)修改ac

android,iosweb互動-—APP使用H5頁面

  一、ios與H5之間的互動 <!DOCTYPE html>   <html>   <meta charset="utf-8">

Androidhtml5互動 -- JavascriptInterface

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

Android使用https伺服器互動的正確姿勢

HTTPS 使用 SSL 在客戶端和伺服器之間進行加密通訊,錯誤地使用 SSL ,將會導致其它人能夠攔截網路上的應用資料。 使用一個包含公鑰及與其匹配的私鑰的證書配置伺服器,作為 SSL 客戶端與伺服器握手的一部分,伺服器將通過使用公鑰加密簽署其證書來證明自己具有私鑰。 主機平臺一般包含其信任的知名 CA

Android之webViewjs互動

一、java呼叫js操作: 1.佈局檔案: <WebView android:id="@+id/web" android:layout_width="match_parent" android:layout_height="mat

Android中Webviewjs互動

1.js呼叫Android程式碼Android端:webView.addJavascriptInterface(new WebHost(this),"js");向WebView註冊一個名叫“js”的物件,然後在JS中可以訪問js這個物件,呼叫這個物件裡的一些方法。 publi

android JNI javaC++互動篇(三)

整理來源:http://blog.csdn.net/qinning199/article/details/11750763 本文目的 要完成在cocos2dx的場景上一個點選事件,傳遞一個訊息到java層,下面讓我們看看如何完成它。 包括 你需要在你的專案中新

iOSHTML5互動方法總結

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

app後臺互動以及web後臺互動的比較

前言: 以前的工作一直做的是web方面的測試工作,效能測試也主要是模擬web端向伺服器傳送http請求。對app這一塊的體系和框架了解比較少。由於下一份工作主要是測試app伺服器的效能。就在網上找了一些資料,簡單的搭建一個app的測試環境。同時希望能夠使用

Andorid APPJS互動

本文展示了Android APP與js互動的程式碼,大部分來源於網路。DEMO地址:https://download.csdn.net/download/a872822645/10892939 首先是js介面: <!DOCTYPE html> <html lang="en"

【中期檢查】 搭建Android伺服器並瀏覽器互動總結一

最近在寫優麒麟手機助手這個專案,優麒麟手機助手是Ubuntu Kylin組織的開源專案: 在Windows平臺上有眾多的安卓手機管理工具,如360手機助手、騰訊手機管家、豌豆莢等,但是在Linux平臺下卻鮮有功能強大的客戶端出現。為了一解我等Linuxer在學習

Android 本地廣播全域性廣播

1. 全域性廣播和本地廣播的區別 全域性廣播:發出去的廣播可以被任何應用程式接收到 本地廣播:發出去的廣播只能被本應用程式接收到,一般使用LocalBroadcastManager對廣播進行管理。 2.註冊廣播 註冊廣播的方式一般有兩種:

Android:WebViewJavascript互動(相互呼叫引數、傳值)

Android中可以使用WebView載入網頁,同時Android端的java程式碼可以與網頁上的javascript程式碼之間相互呼叫。 效果圖: (一)Android部分: 佈局程式碼: <LinearLayout xmlns:android="http://s

iOS中原生APPJS互動 之 WebViewJavascriptBridge 的簡單用法

有時候我們需要跟H5介面做一些簡單的互動功能,這就需要跟JS打交道了。 1、首先初始化一個webview(viewdidload) UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.bounds

關於wkwebviewhtml5互動

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

Android 客戶端伺服器互動方式

突然想到一個問題就是Android客戶端與伺服器互動有幾種方式,因為在腦袋裡想當然的就是webservices和json。要在Android手機客戶端與pc伺服器互動,需要滿足下面幾種條件:跨平臺、傳輸資料格式標準、互動方便...。 為了與伺服器通訊其實無非就兩種協議HTT

ios開發appjs互動第三方工具WebViewJavascriptBridge的使用以及問題pod出現的問題處理

WebViewJavascriptBridge是一個ios與安卓通用的與js互動工具。使用起來非常方便,現在WebViewJavascriptBridge支援webview與WKWebView 首先要在.h或者.m裡面宣告 #import "WKWebViewJavasc

Android studio 中本地 html 頁面互動

  在Android studio的工程裡的main目錄下建立一個 assets目錄與res同級如下圖:在assets目下考入寫好的html頁面,webview通過“file:///android_assets/xxxx.html”載入此檔案。_webView.loadUrl

AndroidHTML5混合開發中android程式碼JS互動

當下HTML5非常火,使用HTML5混合開發的好處是當開發者想要修改某一個非原生頁面時,修改提交之後不用對應用進行升級發版,有人說HTML5將來將會取代原生開發,但個人感覺就目前來說這體驗感還沒完全達到原生的水平,今天做了個小Demo用於android與java