मुझे एंड्रॉइड में वेबव्यू के साथ समस्याएं आ रही हैं और यह जावास्क्रिप्टइंटरफेस है।कभी-कभी अनकॉच त्रुटि फेंकता है: एंड्रॉइड पर एनपीओब्जेक्ट पर विधि कॉल करने में त्रुटि
मैं जावास्क्रिप्ट इंटरफेस में एक स्ट्रिंग पास कर रहा हूं। इसे डिबग करने पर, मुझे अपने एंड्रॉइड एप्लिकेशन में सही स्ट्रिंग मिलती है। समस्या: कभी-कभी मुझे एक असफल त्रुटि मिलती है: एनपीओब्जेक्ट पर विधि कॉल करने में त्रुटि।
क्या कोई जानता है क्यों?
जावा में इंटरफ़ेस:
public class JSInterfaceGame extends JSInterface {
@JavascriptInterface
public void setShareText(String share){
shareText = share;
if(mJSInterfaceListener != null)
mJSInterfaceListener.onParametersChanged(SHARE_TEXT);
}
टुकड़ा भीतर onCreateView-विधि में प्रारंभ:
online = (WebView) rootView.findViewById(R.id.online);
online.setWebViewClient(new WISWebviewClient() {
@Override
public void onStatusChanged(final WebView view, int progress, long duration) {
//unrelated
}
});
WebSettings ws = online.getSettings();
ws.setJavaScriptEnabled(true);
ws.setUserAgentString(USER_AGENT);
ws.setCacheMode(WebSettings.LOAD_DEFAULT);
ws.setRenderPriority(WebSettings.RenderPriority.HIGH);
SharedPreferences settings = getActivity().getSharedPreferences(GameActivity.PREFERENCES, Context.MODE_PRIVATE);
mJSInterface = new JSInterfaceGame();
mJSInterface.setJSInterfaceListener(this); // Defined elsewhere in this class.
mJSInterface.setPlayerName(settings.getString(GameActivity.PREFS_PlAYERNAME, null));
online.addJavascriptInterface(mJSInterface, "JSInterface");
online.loadUrl("http://myurl.something");
जावास्क्रिप्ट में कॉल:
function makeShareText() {
var text = "Some text";
console.log(typeof text); // Always a string.
JSInterface.setShareText(text);
}
वाह, जब आप जावास्क्रिप्ट से फोन कर रहे हैं, यह मुश्किल पता लगाने के लिए है, – Pradeep
को इंगित करने के लिए धन्यवाद मुझे एक ही समस्या है लेकिन मैं निश्चित रूप से यूआई के साथ बातचीत नहीं कर रहा हूं। – matteo
वही त्रुटि होती है यदि आप मूल पैरामीटर के साथ मूल जावास्क्रिप्ट फ़ंक्शन को कॉल करते हैं। –