當前位置:首頁 » 安卓系統 » android載入js

android載入js

發布時間: 2022-07-01 05:41:00

① android 中如何去執行js腳本

android要執行腳本,只有通過本地的webview打開腳本頁面。
調用步驟

1、設置webview支持腳本
webSettings.setjavaScriptEnabled(true);

2、打開腳本頁面

mWebView.loadUrl("file:///android_asset/demo.html");//這里打開該app的asset目錄下的demo.html,裡面含有wave函數腳本

3、調用腳本

mWebView.loadUrl("javascript:wave()");//調用打開頁面中的wave函數

② android webview 遠程 html如何載入本地js

先把html文件下載到本地,然後更改html中js的路徑為本地路徑之後進行調用。
1.需要先寫一個 LocalFileContentProvider
public class LocalFileContentProvider extends ContentProvider {
public static final String URI_PREFIX = "content://com.youpackage";//這里更改為你的包名

public static String constructUri(String url) {
Uri uri = Uri.parse(url);
return uri.isAbsolute() ? url : URI_PREFIX + url;
}

@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
File file = new File(uri.getPath());
ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
return parcel;
}

@Override
public boolean onCreate() {
return true;
}

@Override
public int delete(Uri uri, String s, String[] as) {
throw new UnsupportedOperationException("Not supported by this provider");
}

@Override
public String getType(Uri uri) {
throw new UnsupportedOperationException("Not supported by this provider");
}

@Override
public Uri insert(Uri uri, ContentValues contentvalues) {
throw new UnsupportedOperationException("Not supported by this provider");
}

@Override
public Cursor query(Uri uri, String[] as, String s, String[] as1, String s1) {
throw new UnsupportedOperationException("Not supported by this provider");
}

@Override
public int update(Uri uri, ContentValues contentvalues, String s, String[] as) {
throw new UnsupportedOperationException("Not supported by this provider");
}

}

2. 類似 jsUrl為網路端url jsPath為本地路徑 data為html文件的字元串內容
data = data.replace(jsUrl, LocalFileContentProvider.URI_PREFIX+jsPath);

mWebView.loadDataWithBaseURL("http://yourwebsite", data, "text/html", "UTF-8", "");

③ Android WebView 怎麼注入js文件啊,懇求大神幫忙

第一步:
mainfest.xml中加入網路許可權
<uses-permission android:name="android.permission.INTERNET" />
第二步:
載入本地寫好的html文件(定義好js中提供給android調用的方法 funFromjs(),和android提供給js調用的對象介面fun1FromAndroid(String name)),放在 assets目錄下。
<body>
<a>js中調用本地方法</a>
<script>

function funFromjs(){
document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";
}
var aTag = document.getElementsByTagName('a')[0];
aTag.addEventListener('click', function(){
//調用android本地方法
myObj.fun1FromAndroid("調用android本地方法fun1FromAndroid(String name)!!");
return false;
}, false);
</script>
<p></p>
<div id="helloweb">

</div>
</body>
第三步:

實現android工程與js交互的相關代碼
android主題代碼:
public class JavaScriptObject {
Context mContxt;
@JavascriptInterface //sdk17版本以上加上註解
public JavaScriptObject(Context mContxt) {
this.mContxt = mContxt;
}

public void fun1FromAndroid(String name) {
Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();
}

public void fun2(String name) {
Toast.makeText(mContxt, "調用fun2:" + name, Toast.LENGTH_SHORT).show();
}
}

④ Android 中如何在載入webview的同時執行一段JS代碼,求大神指教

mWebView.addJavascriptInterface(newDemoJavaScriptInterface(),"demo");
mWebView.loadUrl("javascript:wave()");

⑤ android 怎麼在webview中載入 js文件

String
htmlCode
=
下面是htmlCode中的值
<html>
<head>
<script><script
type=\"text/javascript\"
src=
\"ww
w
.fo
ok
ii.c
om/js/jquery.js\"
/></script>
</head>
<body></body>
</html>
webview中用loadData(htmlCode);
//webview載入html代碼
把這個jquery.js文件放到了assets文件夾
src="file:///android_asset/xxx.js"
並且要用
String
baseUrl
=
"file:///android_asset";
WV_View.loadDataWithBaseURL(baseUrl,
strHtml,
"text/html",
"utf-8",
null);

⑥ androidwebview載入本地js怎麼實現交互

WebView(網路視圖)能載入顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎載入顯示網頁,實現WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.調用Activity的setContentView( )方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加許可權,否則會出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET" />

第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實例化WebView
3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁
4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置 WebView視圖
5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加許可權,否則出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET"/>

⑦ Android webview載入的頁面怎樣調試JS

通過本地的webview打開腳本頁面。
調用步驟
1、設置webview支持腳本
webSettings.setJavaScriptEnabled(true);2、打開腳本頁面
mWebView.loadUrl("file:///android_asset/demo.html");//這里打開該app的asset目錄下的demo.html,裡面含有wave函數腳本3、調用腳本
mWebView.loadUrl("javascript:wave()");//調用打開頁面中的wave函數

⑧ 在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 loadjs是同步還是非同步

是同步載入的。

⑩ Android調用js的問題

android怎樣調用js文件裡面的方法
如果多個線程同時訪問一個集合,而其中至少一個線程修改了該集合,那麼它必須 保持外部同步。這通常是通過對自然封裝該集合的對象執行同步操作來完成的。如果不存在這樣的對象,則應該使用 Collections.synchronizedSet 方法來「包裝」集合。最好在創建時完成這一操作,以防止對 HashSet 實例進行意外的不同步訪問:
Set s = Collections.synchronizedSet(new HashSet(...));

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:642
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:89
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:311
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:794
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:346
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:818
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:368
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:594