android調用本地文件
❶ 在android中怎樣調用本地js文件里的方法並得到返回值
您好,很高興能幫助您,
Android中webview和js之間的交互
1.android中利用webview調用網頁上的js代碼。
Android 中可以通過webview來實現和js的交互,在程序中調用js代碼,只需要將webview控制項的支持js的屬性設置為true,,然後通過loadUrl就可以直接進行調用,如下所示:
mWebView.getSettings().setjavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2. 網頁上調用android中java代碼的方法
在網頁中調用java代碼,需要在webview控制項中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(Test.this, "測試調用java", Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
在網頁中,只需要像調用js方法一樣,進行調用就可以
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
3. Java代碼調用js並傳參
首先需要帶參數的js函數,如function test(str),然後只需在調用js時傳入參數即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中調用java函數並傳參
首先一樣需要帶參數的函數形式,但需注意此處的參數需要final類型,即得到以後不可修改,如果需要修改其中的值,可以先設置中間變數,然後進行修改。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid(final int i) {
mHandler.post(new Runnable() {
public void run() {
int j = i;
j++;
Toast.makeText(Test.this, "測試調用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
然後在html頁面中,利用如下代碼<div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>,
即可實現調用
你的採納是我前進的動力,還有不懂的地方,請你繼續「追問」!
如你還有別的問題,可另外向我求助;答題不易,互相理解,互相幫助!
❷ 怎樣使用Android Studio引用本地aar文件
首先,用Android Studio創建一個Android項目,然後找到我們需要引用的本地arr文件
將本地arr文件Copy到我們項目的libs文件夾下,沒錯就是和jar放在同一個文件夾下,這里需要注意的是:是放在主項目的libs文件夾下,別放錯了
Copy完以後,打開我們主項目下的build.gradle構建文件
然後再構建文件中輸入
repositories{ flatDir { dirs 'libs' }}
這是一個本地的「倉庫」不要寫錯了
然後接著在構建文件的dependencies大括弧中,輸入compile(name:'arcgis-android-v10.2.7', ext:'aar'),「arcgis-android-v10.2.7」是arr文件的文件名,「arr」則是文件的擴展名,別寫錯了
以上操作完成後,點擊菜單欄的重新構建按鈕,對項目進行重新構建,然後稍等一下
如果沒有發生錯誤的話,我們打開依次主項目的build--->intermediates--->exploded-aar,就會看到我們剛才引用的arr文件,到此arr文件就引用成功了
❸ 怎樣使用Android Studio引用本地aar文件
要輸出 aar 文件,必須將 Mole 配置為 library,在 gradle 文件中如下:
輸出 aar : apply plugin: 'com.android.library'; 輸出 apk :apply plugin: 'com.android.application'。
將 Mole 配置為 library 後,構建輸出一個 aar 文件,根據渠道和 BuildType 的不同,在相應的目錄下可以找到。比如對 BuildType 為 debug 的配置,輸出為:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份 aar 文件其實就是一份 zip 包,和 jar 不同的是,它將一些資源文件、第三方庫文件、so 文件等等都打包在內,而代碼文件編譯後壓縮在在 classes.jar 中。比如:
3、導入 aar 的方式引用
這種方式比較簡單,打開 Project Structure,添加一個新 Mole,然後選擇 Import *.JAR or *.AAR Package 的方式導入:
導入後,在你的工程下面,會生成一個文件夾,裡面是 aar 文件以及 Android Studio 的配置文件。
接著可以在 gradle 中配置依賴了,其他 Mole 可以引用這個 Mole 了,依賴方式使用compile project 的方式即可。
缺點:被依賴的 aar 無法 F3 跟進去,無法看到資源文件內容以及目錄層級等等缺陷。
4、使用配置依賴的方式引用
gradle 其實還有另一種依賴可以引用 aar:
compile(name: 'xxx', ext: 'aar')。
首先需要將 aar 文件放入引用 Mole 的 libs 目錄下,和一般的 jar 文件類似。然後在 gradle 配置文件中把 libs 目錄加入依賴:
<code class="hljs bash">repositories {
flatDir {
dirs 'libs'
}
}</code>
接著在 gradle 的依賴配置中加入 compile(name: 'xxx', ext: 'aar') 這一句,依賴即可關聯完畢。構建一下工程,在 Mole 的 build/intermediates/exploded-aar 目錄下,可以看到有一些臨時文件生成:
看起來完全是引用 aar 的解壓版本。Android Studio 安裝反編譯插件後,可以通過 F3 跟進到 class 文件裡面,如果你有被依賴 Mole 的源代碼的話,還可以 Attach Source 關聯源代碼查看。另外,可以很方便的查看 aar 中的資源文件。
另外,這種依賴方式更新 aar 後,生成的臨時文件也會隨之變動,不用擔心改動不同步的問題。望採納,謝謝。
❹ 怎樣使用Android Studio引用本地aar文件
方法:用Android Studio創建一個Android項目,然後找到需要引用的本地arr文件,將本地arr文件Copy到項目的libs文件夾下,就是和jar放在同一個文件夾下,需要注意的是:是放在主項目的libs文件夾下。
Copy完以後,打開主項目下的build.gradle構建文件
然後再構建文件中輸入
repositories{ flatDir { dirs 'libs' }}
這是一個本地的「倉庫」。然後接著在構建文件的dependencies大括弧中,輸入compile(name:'arcgis-android-v10.2.7', ext:'aar'),「arcgis-android-v10.2.7」是arr文件的文件名,「arr」則是文件的擴展名。
以上操作完成後,點擊菜單欄的重新構建按鈕,對項目進行重新構建,然後稍等一下,果沒有發生錯誤的話,打開依次主項目的build--->intermediates--->exploded-aar,就會看到剛才引用的arr文件,到此arr文件就引用成功了。
❺ 在android中怎樣調用本地js文件里的方法並得到返回值
在android中調用本地js文件里的方法並得到返回值其方法如下: Android中內置了WebKit模塊,而該模塊的Java層視圖類就是WebView,所有需要使用Web瀏覽器功能的Android都需要創建該視圖類對象顯示和處理請求的網路資源。
❻ 怎樣使用Android Studio引用本地aar文件
首先,用Android Studio創建一個Android項目,然後找到咱們需要引用的本地arr文件
將本地arr文件Copy到咱們項目的libs文件夾下,沒錯就是和jar放在同一個文件夾下,這里需要注意的是:是放在主項目的libs文件夾下,別放錯了
Copy完以後,打開咱們主項目下的build.gradle構建文件
然後再構建文件中輸入
repositories{ flatDir { dirs 'libs' }}
這是一個本地的「倉庫」不要寫錯了
然後接著在構建文件的dependencies大括弧中,輸入compile(name:'arcgis-android-v10.2.7', ext:'aar'),「arcgis-android-v10.2.7」是arr文件的文件名,「arr」則是文件的擴展名,別寫錯了
以上操作完成後,點擊菜單欄的重新構建按鈕,對項目進行重新構建,然後稍等一下
如果沒有發生錯誤的話,咱們打開依次主項目的build--->intermediates--->exploded-aar,就會看到咱們剛才引用的arr文件,到此arr文件就引用成功了
❼ 安卓版怎麼打開本地文件
安卓版怎麼打開本地文件,小剛SEO為你解答
1、安裝「Es文件瀏覽器」可調用內置的瀏覽器打開;
2、也可以安裝「HTML閱讀器」,是一款專為開發者打造,用於讀取各種本地HTML的工具
3、不嫌煩的話,直接輸入地址訪問,file://****.html
❽ 在android中怎樣調用本地js文件里的方法並得到返回值
在android中調用本地js文件里的方法並得到返回值其方法如下:
Android中內置了WebKit模塊,而該模塊的Java層視圖類就是WebView,所有需要使用Web瀏覽器功能的Android都需要創建該視圖類對象顯示和處理請求的網路資源。目前WebKit支持Http、Https、Ftp和JavaScript請求。下面是在Android中調用JavaScript方法以及如何在js中調用本地方法。
1、在Assets下放一個簡單的html文件jstest.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html40/strict.dtd">
<HTML>
<HEAD>
<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi" />
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
function showMsg(){
alert("hello world!");
}
function showMsgInAndroid(){
myjs.showMsg('hello in android!');
}
</script>
</HEAD>
<BODY>
<span>測試js使用</span>
<button id='btntest' onclick='showMsgInAndroid()'>調用android方法</button>
</BODY>
</HTML>
❾ Android編程 打開本地文件 文件選擇器
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/b01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/iv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
代碼
import java.io.FileNotFoundException;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Lesson_01_Pic extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.b01);
button.setText("選擇圖片");
button.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
/* 開啟Pictures畫面Type設定為image */
intent.setType("image/*");
/* 使用Intent.ACTION_GET_CONTENT這個Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
/* 取得相片後返回本畫面 */
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
Log.e("uri", uri.toString());
ContentResolver cr = this.getContentResolver();
try {
Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
ImageView imageView = (ImageView) findViewById(R.id.iv01);
/* 將Bitmap設定到ImageView */
imageView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
Log.e("Exception", e.getMessage(),e);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}