android與h5互調
Java程式碼與H5互調
介面佈局就不說了,一個按鈕
主要是核心程式碼
package com.example.androi_h5; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.webkit.JavascriptInterface; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class JavaAndJSActivity extends Activity implements View.OnClickListener { private EditText etNumber; private EditText etPassword; private Button btnLogin; private WebView webView; private void findViews() { setContentView(R.layout.activity_java_and_js); etNumber = (EditText) findViewById(R.id.et_number); etPassword = (EditText) findViewById(R.id.et_password); btnLogin = (Button) findViewById(R.id.btn_login); btnLogin.setOnClickListener(this); initWebView(); } private void initWebView() { webView = new WebView(this); WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient()); webView.addJavascriptInterface(new AndroidAndJSInterface(),"Android" ); // webView.loadUrl("http://www.atguigu.com/"); //載入本地 webView.loadUrl("file:///android_asset/JavaAndJavaScriptCall.html"); setContentView(webView); } /** * js可以呼叫該類的方法 */ class AndroidAndJSInterface{ @JavascriptInterface public void showToast(){ Toast.makeText(JavaAndJSActivity.this, "我被js呼叫了", Toast.LENGTH_SHORT).show(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_java_and_js); findViews(); } @Override public void onClick(View view) { if (view == btnLogin) { login(); } } private void login() { String numebr = etNumber.getText().toString().trim(); String password = etPassword.getText().toString().trim(); if (TextUtils.isEmpty(numebr) || TextUtils.isEmpty(password)) { Toast.makeText(JavaAndJSActivity.this, "賬號或者密碼為空", Toast.LENGTH_SHORT).show(); } else { //登入 login(numebr); } } private void login(String numebr) { webView.loadUrl("javascript:javaCallJs(" + "'" + numebr + "'" + ")"); setContentView(webView); } }
這是載入本地的html,放在assets目錄下的
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <script type="text/javascript"> function javaCallJs(){ document.getElementById("content").innerHTML += "<br\>java呼叫了js無參函式"; } function javaCallJs(arg){ document.getElementById("content").innerHTML = ("歡迎:"+arg ); } function showDialog(){ alert("穀粉們你好,我是來自javascript"); } </script> </head> <body> <div align="left" id="content"> 穀粉</div> <div align="right">光臨尚矽谷</div> <p><img src="http://atguigu.com/images/logo.gif"></p> <input type="button" value="點選Android被呼叫" onclick="window.Android.showToast()" /> </body> </html>
佈局檔案
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="@android:color/holo_blue_light" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登入頁面" android:textColor="@android:color/black" android:textSize="20sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="10dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_shap" android:orientation="vertical" android:padding="5dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="賬號:" android:textColor="#000000" /> <EditText android:id="@+id/et_number" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入賬號..." android:textColor="#000000" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密碼:" android:textColor="#000000" /> <EditText android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入密碼..." android:password="true" android:textColor="#000000" /> <Button android:id="@+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登入" android:textColor="#000000" android:textSize="25sp" /> </LinearLayout> </LinearLayout> </LinearLayout>
記得加上聯網許可權
相關推薦
Android與H5互調(通過實例來了解Hybrid App)
ext 傳感器 顯示 相同 blank show ima 一次 點擊 前些日子,Android原生開發將被取締的吵得火熱,JavaScript是能做一個完全的APP,但只使用JavaScript做出來的APP也不會牛逼到哪裏去。最好的是混合(Hybrid)開發,在需要的
android與h5互調
Java程式碼與H5互調 介面佈局就不說了,一個按鈕 主要是核心程式碼 package com.example.androi_h5; import android.app.Activity; import android.os.Bundle; import andro
WebView詳解與簡單Android與H5互調
為什麼要學習Android與H5互調? 微信,QQ空間等大量軟體都內嵌了H5,不得不說是一種趨勢。Android與H5互調可以讓我們的實現混合開發,至於混合開發就是在一個App中內嵌一個輕量級的瀏覽器,一部分原生的功能改為Html 5來開發。 優勢:使用H5實現的功能能夠在不升級App的情況下動態更
WebView詳解與簡單實現Android與H5互調
本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 為什麼要學習Android與H5互調? 微信,QQ空間等大量軟體都內嵌了H5,不得不說是一種趨勢。Android與H5互調可以讓我們的實現混合開發,至於混合開發就是在一個App中內嵌
【轉】Android與H5互調
原文地址:http://blog.csdn.net/hpc19950723/article/details/70881226 前言 微信,微博,微商,QQ空間,大量的軟體使用內嵌了H5,這個時候就需要了解Android如何更H5互動的了;有些外包公司,
android和h5互調
前言 微信,微博,微商,QQ空間,大量的軟體使用內嵌了H5,這個時候就需要了解Android如何更H5互動的了;有些外包公司,為了節約成本,採用Android內嵌H5模式開發,便於在IOS上直接複用頁面,最終解決成本。 效果圖: 還有其他4中情況,
Android和H5互調案例基礎詳解
混合開發概述 微信,微博以及現在市面上大量的軟體使用內嵌了H5頁面;有些外包公司,為了節約成本,採用Android內嵌H5模式開發,便於在iOS上直接複用頁面, 從而提高開發效率。 實現的原理
Android與JS互調的簡單使用
在專案開發過程中有時會遇到WebView在載入Js頁面時,網頁上的一些邏輯要通知Android本地進行簡單的UI互動或者引數的實時傳遞,那麼就需要我們在Android程式的程式碼裡實現相應的互調配置,以達到互調的效果。下面我直接通過程式碼實現: JS呼叫Andr
unity中webgl與h5互調
unity呼叫H5: Application.ExternalCall(functionName, params object[] args); 第一個引數是H5中的方法名,第二個引數是H5中方法的引數(可變引數) H5呼叫unity裡的方法(在打包出來的index
android與h5之間的互調
android與h5之間的互調 最近android專案中用到了與html之間的互動,總結了一下,還是比較全的,主要有 java呼叫js函式,js呼叫java函式,瀏覽器中通過連結開啟app - Android和H5互調-java呼叫js private void initW
Android 與 H5 之間的互調
目錄 1. 前言 2. 簡介 3. 效果 4. 程式碼 5. 總結 1.前言 在APP的開發中嵌入了H5頁面,這樣就可以在Android和iOS系統上跑,大大節約了成本。因此作為移動端開發者,一定要學會使用手機系統與H5頁面的互調,下面介紹一下An
Android與H5介面的互動(引數互傳)以及遇到的一些問題
前言 在開發專案時,有部分介面是H5介面,原本以為直接載入H5介面就能搞定,後來還是遇到引數互傳問題了,然後網上意見不一,只好自己摸索,下面就給大家聊聊我遇到的問題~~~ 1.先給大家看看成功之後的介面跳轉: 解釋一下: 介面跳轉流程: 首頁的限時
移動端(ios and android)長按識別二維碼(含js與原生互調)
這篇文章就整理下移動端長按識別二維碼的實現吧!實現方式可以分為三種 第一二種好像沒多少可以說的,但還是按照順序來吧!首先先說下使用的庫,ios使用原生二維碼識別庫(好像是ios7之後才有的),然後說是WKWebView比UIWebView優化了很多 東西,也解決了記
Android、H5 單獨調起拍照與攝像
一: 公司程式碼需求,要求使用者在H5內上傳視訊的時候必須是剛拍攝的。這就需要我們在調起相機的時候只調起拍攝,並且不能有BROWSER出現。 1、單獨調起拍照: // 啟用系統的照相機進行拍照 Intent intent = new Intent();
Android中Js與Java互調
在android的開發過程中,有很多時候需要用到本地java程式碼和javascript進行互動。android對互動進行了很好的封裝,在開發中我們可以很簡單的用java程式碼呼叫webview中的js,也可以用webview中的js來呼叫本地的java程式碼,這樣我們可以實現很多原來做不了的功
安卓與JS互調之android webview addJavascriptInterface 的方法不能呼叫
以前一直覺著用HTML5做Android app是一件很雞肋的事(勿噴,請恕小的見識少)。 後來又發現很多大公司做的app中都或多或少的使用了html元素,比如微信、qq之類。 最近在網上閒逛發現一個IDE可以使用純html js css設計app併發布到多個平臺,並
Android與JS互相調用以及註意
import 調用 spa sha 技術 作用 zhang ces wan 近期項目中常常使用Html5而Android與JS調用常常會用到,這裏記錄一下,測試系統5.0以上。這裏先貼一下源代碼Activity:package jwzhangjie.com.webview
android ios vue 互調
android ios vue 1、Vue調用android,ios Vue:openContacts:function(){window.nativeObj.openContacts()} android:Webview.addJavascriptInterface(contactsIn
webview Java與JS互調
Android呼叫JS:方法一 webView.loadUrl("javascript:show('"+info+"')"); Android呼叫JS:方法二 //第一個引數為js中的方法名,該段程式碼每執行一次則呼叫js方法一次 progressWebView.
Android與H5相機、相簿筆記
公司專案中android內嵌H5頁面,H5頁面需要選擇上傳圖片功能。H5的標籤無法調起android照相機和相簿功能,所以只能android進行處理。本人第一次做,借鑑網上諸多的程式碼,總結如下: