PDA

View Full Version : فراخوانی فانکشن جاوا از طریق جاوا اسکریپت



bhrzk111
دوشنبه 19 خرداد 1393, 01:13 صبح
سلام
من یک مشکلی دارم توی برنامه اندرویدم.
من برنامه نویس وب هستم و می خواستم به نوعی این سبک را با برنامه نویسی اندروید ترکیب کنم و یک app بسازم . همه چیز اوکی هست غیر از پخش صدا.
حال من برای پخش صدا می خوام از جاوا و android sdk استفاده کنم .

کد من به این شکل است :

package com.autistic.whatsit;

import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.annotation.SuppressLint;
import android.media.MediaPlayer;
import android.os.Bundle;


public class Main extends ActionBarActivity {
public MediaPlayer mediaPlayer;
WebView mWebView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* Media Player Plugin Adjusment */
mediaPlayer = MediaPlayer.create(this, R.raw.hooray);

/*Web View JS -> JAVA Brdige*/


}

public void play(View view){
mediaPlayer.start();
}

@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" }) public void onStart() {
super.onStart();


WebView webView = (WebView)findViewById(R.id.webview);
//enable JavaScript
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.addJavascriptInterface(new java2JSAgent(), "java2JSAgentVar");
webView.loadUrl("file:///android_asset/index.html");
}

public class java2JSAgent {
public String getContacts() {
String jsonResponse = null;
//call Android APIs to get contacts
//serialize to JSON and assign to jsonResponse


return jsonResponse;
}
}
}
این نمونه را در یکی از سایت ها پیدا کردم الان وقتی من فانکشن play() را از طریق خود اندروید فراخوانی می کنم اجرا می شود بدون مشکل .
حال من می خواهم وقتی از طریق webveiw بر روی یک لینک کلیک می کنم همون فانکشن play() اجرا بشه ولی هرکاری کردم نشد .

کد صفحه html :


<html><head>
<script type="text/javascript" charset="utf-8">
function AudioPlay() {
java2JSAgent.play();
}
</script>
</head>
<body>
Test Project via WebForm
<a href="#" onclick="AudioPlay()">Click ME PLS</a>
</body>
</html>

آیا کسی راه حلی دارد براش ؟ یا من کجای کار را اشتباه می کنم ؟

ممنون از کمک دوستان .