আমি javascript
একটি html
পৃষ্ঠার ভিতরে চলমান কিছু ফাংশন কল করার চেষ্টা করছি android webview
। কোডটি নীচে কী করার চেষ্টা করে তা খুব সহজ - অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে, javascript
একটি পরীক্ষা বার্তা সহ একটি ফাংশন কল করে , যা প্রবেশের মাধ্যমে জাভা ফাংশনটিকে আবার অ্যান্ড্রয়েড অ্যাপে কল করে যা টোস্টের মাধ্যমে পরীক্ষার বার্তা প্রদর্শন করে।
javascript
ফাংশন দেখে মনে হচ্ছে:
function testEcho(message){
window.JSInterface.doEchoTest(message);
}
ওয়েবভিউ থেকে আমি javascript
নিম্নলিখিত উপায়গুলিকে ভাগ্যবিহীন কল করার চেষ্টা করেছি :
myWebView.loadUrl("javascript:testEcho(Hello World!)");
mWebView.loadUrl("javascript:(function () { " + "testEcho(Hello World!);" + "})()");
আমি সক্ষম হয়নি javascript
উপরWebView
myWebView.getSettings().setJavaScriptEnabled(true);
// register class containing methods to be exposed to JavaScript
myWebView.addJavascriptInterface(myJSInterface, "JSInterface");
এবং heres Java
ক্লাস
public class JSInterface{
private WebView mAppView;
public JSInterface (WebView appView) {
this.mAppView = appView;
}
public void doEchoTest(String echo){
Toast toast = Toast.makeText(mAppView.getContext(), echo, Toast.LENGTH_SHORT);
toast.show();
}
}
আমি কী ভুল করছি তা দেখতে আমি প্রায় সময় গুগল করে কাটিয়েছি। সমস্ত উদাহরণ আমি এই পদ্ধতির ব্যবহার পেয়েছি। কেউ কি এখানে কিছু ভুল দেখছেন?
সম্পাদনা করুন: এখানে আরও বেশ কয়েকটি বাহ্যিক javascript
ফাইল রেফারেন্স ও ব্যবহৃত হচ্ছে html
, সেগুলি কি সমস্যা হতে পারে?
@JavascriptInterface
থেকে আপনার জাভাস্ক্রিপ্ট ইন্টারফেসের মাধ্যমে ওয়েবভিউতে উপলব্ধ করতে চান এমন জাভা পদ্ধতিতে ডেকরেটার ব্যবহার করা দরকার।
myWebView.loadUrl("javascript:testEcho('Hello World!')");
আমি বুঝতে পারি যে আপনি ইতিমধ্যে এই HTML ভিউলে এইচটিএমএল ফাইল সংযুক্ত করেছেন। আপনি আমাকে বলতে পারেন যে আপনি এটি কিভাবে?