1. 程式人生 > >Android WebView 與 原生的互動

Android WebView 與 原生的互動

前段時間,才接觸這個。看了 很多部落格,但是,就是搞不出來。跟別人寫的基本一樣。哎。愚笨了。謝謝群裡幫助我的 大神們,來說說其中的細節吧。

呼叫前的準備:

//**細節①**
webView.addJavascriptInterface(this,"app");
<!--webView 相關屬性設定-->
...

第一種:Java(原生) 呼叫 Js。

webView.postDelayed(new Runnable() {
    @Override
    public void run() {
    //**細節②** javascript+goods_lists()方法名字。
//如果帶有引數"javascript:goods_lists('"+id+"','"+name+"')"多個引數請用逗號隔開。 mStyleWv.loadUrl("javascript:goods_lists()"); //LoadDialog.dismiss(getContext()); } }, 1000);//**細節③**就是這裡,坑了我不止一天時間。 這裡採用的一個執行緒,主要是避免HTML頁面 還沒載入完畢就呼叫了JS 方法。 這裡設定1S後執行。 //在XML中引入寫js方法的檔案。

第二種:Js呼叫Java。

//**細節①**,這個註解一定要加。
@JavascriptInterface//簡單點,點選JS中的按鈕,跳轉到原生頁面,我這裡有引數,可以不寫。 public void SkipParisonof(String id,String img,String name,String num,String price) { Intent intent=new Intent(getContext(), ComParisonofIndentActivity.class); intent.putExtra("scomm_id",id); intent.putExtra("scomm_img",img); intent.
putExtra("scomm_name",name); intent.putExtra("scomm_price",price); intent.putExtra("scomm_num",num); startActivity(intent); } //XML那邊的,呼叫方法,沒有引數的話,window.app.SkipParisonof()" <li class="active"><a onclick="window.app.SkipParisonof('0')">全部</a></li>

第三種:就是,js呼叫java 之後,Java 再呼叫一下Js方法。
應用場景:比如,原生這邊沒有引數,但是也不想從新寫個介面。這個時候,XML那邊呼叫原生的方法,傳個引數過來。原生的再利用這個引數,進行方法的呼叫。

    //js呼叫java.
    @JavascriptInterface//
    public void getLogisticsType(final String status){
        //java 呼叫js ,
        mLogisticsWv.postDelayed(new Runnable() {
            @Override
            public void run() {
//                mLogisticsWv.loadUrl("javascript:ajax_order_goods('"+id+"','"+status+"')");
//                LoadDialog.dismiss(MyShopOrderActivity.this);
            }
        },0);
    }

總之一句,根據需求,各種變換就是了。有什麼錯誤的地方,多多指出。

相關推薦

Android WebView 原生互動

前段時間,才接觸這個。看了 很多部落格,但是,就是搞不出來。跟別人寫的基本一樣。哎。愚笨了。謝謝群裡幫助我的 大神們,來說說其中的細節吧。 呼叫前的準備: //**細節①** webView.addJavascriptInterface(this,"ap

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

Webview原生互動傳值

UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0,0, MainScreenWidth,MainScreenH

android webviewh5互動時所遇到的坑

現在h5與原生的混合開發越來越多,身為一名移動端開發人員,必須要跟隨潮流步伐,掌握基本的與h5的互動技能。 手頭正好有個demo,算是為開始準備混合開發的android夥伴們準備的開胃菜。 也許有同學該有疑問了,android顯示html頁面的不就一個webview載入ur

AndroidWebview原生介面互動及二維碼掃描功能實現

最近專案中有一個新的需求,大致是這樣的:APP中通過WebView展示一個第三方的HTML5介面,使用者可以在HTML5介面中呼叫Android攝像頭進行二維碼掃描,並將掃描結果顯示在HTML5介面。這顯然涉及到了Android原生與WebView之前的傳值

AndroidwebViewjs互動

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

解決Android簽名混淆後WebViewJS互動失效的問題

最近做了個網頁端微信支付的小功能,測試版還好好的,混淆打包後,寫的方法webview無法呼叫,意識到混淆除了問題,於是在網上找了一些大神的解決方案,再根據自己的實際解決過程,列出來一個完整的解決方法。 Android4.2以上版本呼叫js介面需要在方法使用宣告@JavascriptInterfa

Android筆記之 WebviewJs互動-詳情舉例

Android呼叫網頁自身Js 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 本地(asset)網頁androidcalljs.h

Android WebView JS的資料互動

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

AndroidWebviewjs互動

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

AndroidWebViewJavascript互動(相互呼叫引數、傳值)

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

Flutter的需要原生互動的一些常用庫

轉自: https://github.com/AweiLoveAndroid/Flutter-learning/blob/master/readme/Flutter%E7%9A%84%E9%9C%80%E8%A6%81%E4%B8%8E%E5%8E%9F%E7%94%9F%E4%BA%A4%E4

WebViewJs互動所有方法及使用

首先 你肯定要定義,初始化一個webview,其實網上的例子很多,我這裡就簡單的把一些WebView 中可能會用到的的很重要的屬性以及支援全屏播放視訊該怎麼實現的程式碼粘出來,直接放到專案中去就行了 [java] view plaincopy <span style=

Webviewjs互動

public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText ed; private Button btn; priva

android java native互動 基礎學習(一)

javap 與javah的用法 javap 的用法: cd 到 class 所在的目錄: javap -classpath . -s Bean(類名) java h的用法一: native 所在的資料夾。ExampleUnitTest 資料夾所在的包

webviewjs互動在targetsdkversion設定為19的時候出現的問題

轉自:http://blog.csdn.net/kaka123ac/article/details/42871441 1.在WebView中呼叫js,在4.4(target = 19)之前,只有一種方法:      呼叫js方法 test()     webView.lo

Android webView和js互動

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

Android WebView、js互動方式原理總結

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