新聞中心
安卓手機(jī)javascript被禁用怎么開(kāi)啟?
一般是瀏覽器里禁用,進(jìn)入瀏覽器設(shè)置找到隱私或高級(jí)或擴(kuò)展功能,再找到j(luò)s并開(kāi)啟即可。具體要看是哪個(gè)瀏覽器里提示,不同瀏覽器操作也略有不同。
專業(yè)從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),高端網(wǎng)站制作設(shè)計(jì),成都微信小程序,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用H5高端網(wǎng)站建設(shè)+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站建設(shè),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。
Js調(diào)用Android的方法
1、初始化WebView
X5WebView? webView =new X5WebView(this,null);我這里用的是騰訊的TBS瀏覽服務(wù).詳情參考上一篇文章:
2、設(shè)置初始化WebSetting
3、給WebView添加addJavascriptInterface()
例如:
android中用javascript嗎
Android之如何使用javascript調(diào)用android代碼
使用javascript調(diào)用android代碼
1.使用webview對(duì)象的addJavascriptInterface方法
2.addJavascriptInterface方法有兩個(gè)參數(shù),第一個(gè)參數(shù)就是我們一般會(huì)實(shí)現(xiàn)一個(gè)自己的類,類里面提供我們要提供給javascript訪問(wèn)的方法;第二個(gè)參數(shù)是訪問(wèn)我們?cè)趏bj中聲明的方法時(shí)候所用到的js對(duì)象,調(diào)用模式為window.interfaceName.方法名()或者是javascript: interfaceName.方法名() ;,如myWebView.addJavascriptInterface(new JavaScriptinterface(this), "android");
3.編寫(xiě)JavaScriptinterface類,如有一個(gè)函數(shù)名為showToast()的方法
4.在html中調(diào)用時(shí)的形式:javascript:android.showToast()。
附上一個(gè)小例子:
import android.content.Context;
import android.widget.Toast;
public class JavaScriptinterface {
private Context mContext;
/** Instantiate the interface and set the context */
public JavaScriptinterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private WebView myWebView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myWebView = (WebView) findViewById(R.id.myWebView);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new JavaScriptinterface(this),
"android");
String htmlText = getFromAssets("test.html");
//把myWebView加載html
myWebView.loadData(htmlText, "text/html", "utf-8");
myWebView.setWebViewClient(new myWebViewClient());
}
// 此按鍵監(jiān)聽(tīng)的是返回鍵,能夠返回到上一個(gè)網(wǎng)頁(yè)(通過(guò)網(wǎng)頁(yè)的hostlistery)
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
public String getFromAssets(String fileName) {
try {
InputStreamReader inputReader = new InputStreamReader(
getResources().getAssets().open(fileName));
BufferedReader bufReader = new BufferedReader(inputReader);
String line = "";
String Result = "";
while ((line = bufReader.readLine()) != null)
Result += line;
if (bufReader != null)
bufReader.close();
if (inputReader != null)
inputReader.close();
return Result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
class myWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
}
}
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns="" xml:lang="zh-CN" dir="ltr"
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /
script type="text/javascript"
function showAndroidToast(toast) {
javascript:android.showToast(toast);
}
/script
/head
body
input type="button" value="Say hello"
onClick="showAndroidToast('Hello Android!')" /
/body
/html
android的應(yīng)用程序中,可以直接調(diào)用WebView 中的javascript 代碼:
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
public class MainActivity02 extends Activity {
/** Called when the activity is first created. */
private WebView webView;
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
webView=(WebView) this.findViewById(R.id.webView);
button=(Button) this.findViewById(R.id.button);
WebSettings setting=webView.getSettings();
//設(shè)置支持javascript
setting.setJavaScriptEnabled(true);
//增加接口方法,讓html頁(yè)面調(diào)用
webView.addJavascriptInterface(new Object(){
//這里我定義了一個(gè)撥打的方法
public void startPhone(String num){
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+num));
startActivity(intent);
}
}, "demo");
//加載頁(yè)面
webView.loadUrl("");
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
webView.loadUrl("javascript:show('activity傳過(guò)來(lái)的數(shù)據(jù)')"); //調(diào)用javascript函數(shù)
/*
* 通過(guò)webView.loadUrl("javascript:xxx")方式就可以調(diào)用當(dāng)前網(wǎng)頁(yè)中的名稱
* 為xxx的javascript方法
*/
}
});
}
}
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleInsert title here/title
script type="text/javascript"
function show(content){
document.getElementById("countent").innerHTML=
"這是我的javascript調(diào)用. 這是:"+content;
}
/script
/head
body
table align="center"
trtd姓名/tdtd電話/td/tr
trtd小明/tdtda href="javascript:demo.startPhone(123)"123/a/td/tr
trtd小王/tdtda href="javascript:demo.startPhone(456)"456/a/td/tr
/table
p id="countent"html原始數(shù)據(jù)/p
/body
/html
安卓調(diào)用js載入卡住
具體原因是這樣的:
1、Java調(diào)用js里面的函數(shù)、效率并不是很高、估計(jì)要200ms左右吧、做交互性很強(qiáng)的事情、這種速度很難讓人接受、而js去調(diào)Java的方法、速度很快、50ms左右、所以盡量用js調(diào)用Java方法。
2、Java調(diào)用js的函數(shù)、沒(méi)有返回值、調(diào)用了就控制不到了。
3、Js調(diào)用Java的方法、返回值如果是字符串、你會(huì)發(fā)現(xiàn)這個(gè)字符串是native的、轉(zhuǎn)成locale的才能正常使用、使用toLocaleString()函數(shù)就可以了、不過(guò)這個(gè)函數(shù)的速度并不快、轉(zhuǎn)化的字符串如果很多、將會(huì)很耗費(fèi)時(shí)間。
4、網(wǎng)頁(yè)中盡量不要使用jQuery、執(zhí)行起來(lái)需要5-6秒、最好使用原生的js寫(xiě)業(yè)務(wù)腳本、以提升加載速度、改善用戶體驗(yàn)。
本文名稱:javascript安卓,javascript安卓版下載安裝
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/dscjcos.html