javascript開發android
㈠ js android端實現視頻自動播放
在安卓手機上,使用video播放視頻有個問題,video控制項層級會永遠在頂層,不利於視頻互動H5開發,而IOS手機上不會有此問題。
<video src="http://xxx.mp4" x5-video-player-type="h5"/>
x5-video-player-type="h5" 只適用於微信瀏覽器
注意:
1.jsmpeg 需要將視頻轉為.ts的文件
先安裝ffmpeg,然後執行以下命令,將mp4格式的文件轉成 .ts(用命令行轉的才能正常播放)
ffmpeg -i video.mp4 -f mpegts -codec:v mpeg1video -codec:a mp2 out.ts(文件的路徑不太好找,建議全局搜索一下)
2.安卓上使用jsmpeg插件渲染canvas,ios上正常使用video並加入隱藏控制條等設置
3. http://hf-app.oss-cn-hangzhou.aliyuncs.com/public/html/jsmpeg.js 請使用此js,原作者的js沒有回調設置
4. https://github.com/phoboslab/jsmpeg 原作者github地址
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSMpegPlayer</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0">
<style>
html,body{
padding: 0;
margin: 0;
}
.msg-wrap{
position: fixed;
top: 0;
left: 0;
background: #fff;
border: 1px solid #000;
}
.video-wrap{
width: 100%;
display: none;
}
</style>
</head>
<body>
<video class="video-wrap" id="video-ios" x5-playsinline webkit-playsinline playsinline src="1_BG_4s_2.mp4"></video>
<canvas class="video-wrap" id="video-android"></canvas>
<div class="msg-wrap" id="msgTxt">loading...</div>
<script src="http://hf-app.oss-cn-hangzhou.aliyuncs.com/public/html/jsmpeg.js"></script>
<script>
var msgTxt = document.getElementById('msgTxt');
var video = document.getElementById('video-ios');
var canvas = document.getElementById('video-android');
//檢測是否為非安卓瀏覽器並作處理
var check = !! navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
if(check){
msgTxt.innerHTML = "not Android mode"
video.style.display="block"
video.play()
//監聽video載入完成
video.addEventListener("loadedmetadata",function(){
msgTxt.innerHTML = "not Android mode:videoPlaying"
})
//監聽video播放結束
video.addEventListener("ended",function(){
msgTxt.innerHTML = "not Android mode:videoEnd"
})
}else{
// jsmpegPlay(canvas,'1_BG_4s_5.ts',startCallBack,playingCallBack,endCallBack)
jsmpegPlay(canvas,'out.ts',startCallBack,playingCallBack,endCallBack)
}
function jsmpegPlay(Vcanvas,vVideo,startFun,playingFun,endFun) {
var player = new JSMpeg.Player(
vVideo ,{
canvas: Vcanvas,
loop: false,
autoplay: true,
startSign: true,
startCallBack: startFun,
playingCallBack: playingFun,
endCallBack: endFun
});
}
//視頻開始播放(即解碼完成)執行
function startCallBack() {
msgTxt.innerHTML = "Android mode:videoPlaying"
canvas.style.display="block"
}
//視頻播放進度
function playingCallBack(currentTime) {
// console.log(currentTime)
}
//視頻播放完成執行
function endCallBack() {
msgTxt.innerHTML = "Android mode:videoEnd"
}
</script>
</body>
</html>
項目中遇到的坑,把使用方法記錄一下
在線演示DOMO
JSMpegPlayer
https://github.com/xxfxx/android-video-autuplay github地址,歡迎小星星~~~
㈡ 百度地圖js版Android開發,如何實現兩個手指放大縮小地圖
網路地圖js版,在Androids上面目前只能支持滑動,在IOS上支持滑動和雙指縮放。
這不是網路地圖的問題,而是Android設備上的瀏覽器,對多點觸控的支持不夠完善。
㈢ js寫文件到本地安卓
1、首先連接中端鏈接。
2、其次手動創建目錄。
3、最後創建js文件到本地安卓即可。
㈣ android開發和java開發有什麼區別
android開發和java開發有什麼區別
安卓是用Java語言開發的! Java開發有後台有前端,內容就多了。
第一、平台不一樣。java開發是桌面或者企業級的電腦上執行的,一個是在Android系統上執行的。兩者的程式碼不能互通。不過都是用java語言寫的。
第二、不同系統上的控制元件不同,所以導致兩者程式碼不能通用。如果普通的個人電腦和安卓系統的控制元件名統一起來,通用性會好很多。
第三,硬體不同。個人電腦上很少有羅盤、GPS、閃光燈、移動/聯通的接入功能吧。而這些在安卓系統上都有。如果軟體需要使用這些硬體,那就肯定沒法在個人電腦上執行。
再說一下相同點:
JAVA開發和安卓開發都是用java語言開發,所以語法十分相似。
最大的相同點,主要開發語言都是java,最大的區別,java開發注重於網站的開發,例如PC或者手機端的網頁,用java開發更好一點;而安卓就簡單了,主要就是開發app,執行在手機上的軟體應用,是需要在手機上安裝的,這應該是最大的區別。
這個問題是個范圍問題。android開發是java開發的一個分支。你說的java類庫是指標准類庫吧。android種的類庫有一部分和java類庫基本一致,也就是類名一致。比如String,Integer這些,但是具體的實現都是改過的(還好改過的,不然和甲骨文打官司就慘了)。不過java種的swing這些類庫在android種就沒有了,也就是說android種只用了java種的常用的類庫。你對java開發了解的話那麼android很快就可以上手,只是熟悉api的一個過程而已。而且android開發比你用java開發web要簡單容易很多,因為你不必了解太多的東西,只需要了解android方面就可以了,而不像做web你除了java還需要,css,javascript,sql,甚至ssh框架,太繁瑣了。說了這么多也就是說明android其實比一般的java開發還容易。區別不大,而且更簡單。
Android開發和JAVA開發有什麼區別?
Android開發是java開發的一個分支,android種的類庫有一部分和java類庫基本一致,也就是類名一致,不過java種的swing這些類庫在android種就沒有了,也就是說android種只用了java種的常用的類庫。
具體介紹:
1、Android 是在java基礎之上的一門語言,Android是用來開發手機APP的,學Android 需要先學java基礎語法。
2、簡單地說,一種是作業系統,一種是開發語言。具體來說,Android是一種基於Linux的開放原始碼作業系統,主要用於便攜裝置(智慧手機,平板電腦)。Java是一種面向物件的程式語言,它的最大的特點就是開源和免費,這因為如此,中國的大部分大型的軟體系統是用Java開發的。
3、Android的應用層上的應用程式是用Java編寫的,以Java作為開發語言,但是,Java並不等同於Android,因為Android SDK引用了Java SDK的大部分,少數部分被Android SDK所拋棄。所以,要想從事Android的開發,就必須有Java基礎。另外,在Windows系統中可以搭建Android的Java開發環境,這樣就可以實現在Windows系統中測試Android專案了。
4、Android開發與JAVA兩者是相輔相成的。JAVA給Android提供了開發的語言環境,Android的開發通過JAVA語言去實現。
㈤ android 開發中 怎麼用js獲取手機屏幕高度
webview.addjavascriptinterface可以調用android代碼
android可以獲得屏幕高度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int height = dm.heightPixels//這個就是屏幕高度了。
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
這個就創立了一個介面名,叫「Android」,運行在WebView中的JS代碼可以通過這個名字調用WebAppInterface類中的showToast()方法:
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<script type="text/javascript">
function showAndroidToast(toast)
{
Android.showToast(toast);
}
</script>
㈥ 自學Android開發和iOS開發需不需要學HTML,CSS,JavaScript 這些
前端開發最重要的基礎就三門技術 jvascript+css+html,js是其中最重要的
ps可以不掌握,工作的時候一般只需要會切圖就行,而且很多公司會讓作圖的人切好圖,你可以不考慮
flash完全不用理會,pc上flash日漸消沉,無線上早就死光光了
我想說的 最重要的,就是基礎,深入掌握一下javascript和css基礎,這兩個是無論是面試相關,跟以後的項目開發,都是最息息相關的。如果時間不夠的話,重點掌握javascript,推薦兩本書,你選其中一本就行,一是犀牛書(javascript權威指南),另外一本是javascript高級程序設計(尼古拉斯大神的書,目前第三版),重點掌握js語法基礎,ajax,面向對象相關(基於原型的繼承等高級技術)。
css推薦 css權威指南一書,css學習是很枯燥的,一般在項目過程中才能不斷掌握,如果沒有條件,可以重點學一下選擇器,定位,盒模型和浮動這幾章。
jquery在很多公司或者整個前端界用的居多,但在很多大公司面試時(像我在網路面試時,人家都豪不理會),因為這些公司重視的是基礎,項目經驗可以培養,但基礎需要花狠勁才能掌握牢固。這些框架對你現在的作用是熟悉一下源碼,看看它們怎麼實現的。我也是大三才學的前端,並且邊讀框架邊學的js,如果你對這樣學感興趣,推薦你讀一下prototype.js的源碼。jquery的源碼太過講究技巧,不太適合初學者去讀。
最後談一下准備作品這塊,去年開始前端界衍生了一個新的職位,叫無線前端開發工程師,說白了就是在iphone和android手機上做網站,用到的技術基礎還是js跟css,但不需要像pc那樣考慮兼容性(IE6是很惡心的),最重要的,就是對html5和css3支持度比較高,這個職位目前還是很熱門的,你可以往這個方向發展,掌握好基礎後學這些新技術還是很容易的。利用css3和html5寫一些demo絕對可以讓考官眼前一亮。
如果你學了一學期掌握了基礎,可以嘗試聯系我,網路還是很歡迎熱愛技術的人的,特別是女生(嘿嘿),最後祝你成功。
㈦ 如何在JAVASCRIPT調用Android JAVA函數
你好:
一、網頁的JS代碼調用ANDROID中JAVA代碼的方法
在網頁中調用java代碼、需要在webview控制項中添加javascriptInterface
contentWebView = (WebView) findViewById(R.id.webview);
//啟用javascript
contentWebView.getSettings().setJavaScriptEnabled(true);
contentWebView.addJavascriptInterface(this, "js對象名");
在Activity中定義一個要被js調用的方法、src為js傳遞過來的參數、如果沒有不傳也可以
public void jsFunction(final String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
runOnUiThread(new Runnable() {
@Override
public void run() {
//在里對Android應用的UI進行處理
}
});
}
在網頁中、只需要像調用js方法一樣、進行調用就可以
<a onClick="window.js對象名.jsFunction(´hello world´)" >
點擊調用java代碼並傳遞參數
</a>
二、ANDROID中JAVA代碼調用網頁的JS代碼的方法
Java代碼調用js並傳參其實是通過WebView的loadUrl方法去調用的、只是參數url的寫法不一樣而已
// 無參數調用
contentWebView.loadUrl("javascript:javacalljs()");
// 傳遞參數調用
contentWebView.loadUrl("javascript:javacalljswithargs("
+ "´hello world´" + ")");
三、JAVA和JS交互注意事項
1、Java 調用 js 裡面的函數、效率並不是很高、估計要200ms左右吧、做交互性很強的事情、這種速度很難讓人接受、而js去調Java的方法、速度很快、50ms左右、所以盡量用js調用Java方法
2、Java 調用 js 的函數、沒有返回值、調用了就控制不到了
3、Js 調用 Java 的方法、返回值如果是字元串、你會發現這個字元串是 native 的、轉成 locale 的才能正常使用、使用 toLocaleString() 函數就可以了、不過這個函數的速度並不快、轉化的字元串如果很多、將會很耗費時間
4、網頁中盡量不要使用jQuery、執行起來需要5-6秒、最好使用原生的js寫業務腳本、以提升載入速度、改善用戶體驗
㈧ 那些安卓應用使用javascript編寫的
這個告模太多了,任何JavaScript的應用要移襪肢緩植到Android上都很方便,只需要飢伍用WebView載入一下就行了。比如很有名的2048
㈨ 用nodejs開發android應用可行嗎
適合,但是是服務端 。 要開發酷炫界面就用其他吧 。襲讓 Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和念螞高效,非常適合在分布式設備拍高局上運行的數據密集型的實時應用。
㈩ 用HTML+CSS+JS開發安卓手機程序 在手機裡面長按事件怎麼寫
<td id="mytd"></td>
<滑棗script type="text/javascript">
var tddom= document.getElementById('mytd');
var timer = null;
tddom.onmousedown = function(){
timer = setTimeout( doStuff, 2000 );//這里設耐讓好置昌鉛時間
};
tddom.onmouseup = function(){
clearTimeout( timer );
};
function doStuff() {
alert('hello, you just pressed the td for two seconds.')
}
</script>