2013-07-29 7 views
5

मैं फोनगैप में एक मोबाइल वेबसाइट (नेटवर्क पर) पैकेजिंग कर रहा हूं और कुछ लिंक को अवरुद्ध करना चाहता हूं और ChildBrowser प्लगइन का उपयोग करके उन्हें खोलना चाहता हूं।फोनगैप/एंड्रॉइड, .ShouldOverrideUrlLoading से चाइल्ड ब्राउजर खोलें()

ChildBrowser childBrowser = new ChildBrowser(); 
childBrowser.openExternal(url, true); 

अपवाद विवरण::

07-29 10:49:52.632  947-947/com.abc.androidTablet E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.NullPointerException 
at com.phonegap.plugins.childBrowser.ChildBrowser.openExternal(ChildBrowser.java:127) 
at com.mygola.androidTablet.abc_android$1.shouldOverrideUrlLoading(abc_android.java:96) 
at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:270) 
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:372) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5041) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
at dalvik.system.NativeStart.main(Native Method) 
यह संभव (मैं पहले से ही निर्धारित किया है बीच में रोकने का लिंक है)

मैं नीचे दिए गए कोड की कोशिश की है, लेकिन यह NullPointerException में परिणाम मूल कोड से ChildBrowser को गति प्रदान करने के लिए है

+0

कहाँ:

public String openExternal(String url, boolean usePhoneGap,Context context) { ... intent = new Intent().setClass(context, org.apache.cordova.DroidGap.class); ... context.startActivity(intent); } 

इसके अलावा अन्य कॉल से त्रुटियों इस समारोह के लिए मूल मानकों के साथ एक और तरीका जोड़ने को रोकने के लिए क्या आपका अपवाद है? क्या आप अपना लॉगकैट पोस्ट कर सकते हैं? – caiocpricci2

+0

@ caiocpricci2 जोड़ा गया logcat – wakeup

+0

ChildBrowser.java पर लाइन 127 पर क्या है? प्लगइन का कौन सा संस्करण आप उपयोग कर रहे हैं? यदि आप नीचे पोस्ट किए गए कोड का उपयोग करने का प्रयास करते हैं तो क्या आपको अपवाद भी मिलता है? – caiocpricci2

उत्तर

1

...

ChildBrowser childBrowser = new ChildBrowser(); 
childBrowser.cordova = this; 
childBrowser.showWebPage(url, null); 
1

आपके लॉकैट के बिना प्लगइन का उपयोग करके आपको और सलाह देना मुश्किल है, लेकिन यदि आप मूल परत से openExternal पर कॉल कर रहे हैं तो प्लगइन का उपयोग करने का कोई कारण नहीं है। यदि आप the source code पर एक नज़र डालेंगे तो आप देखेंगे कि यह आपके यूआरएल को लेता है और इसे नए DroidGap पृष्ठ में लोड करता है।

यदि आप केवल आवश्यक भाग लेते हैं तो यह अपवाद कहां हो रहा है, यह ट्रैक करने में सहायता कर सकता है।

function void openExternalUrl() { 

    intent = new Intent().setClass(this.ctx.getContext(), org.apache.cordova.DroidGap.class); 
    intent.setData(Uri.parse(url)); // This line will be removed in future. 
    intent.putExtra("url", url); 
    this.ctx.startActivity(intent); 

} 

संपादित

आप संदर्भ चर पर एक अशक्त अपवाद हो रही है। मुझे नहीं पता कि यह उस समय क्यों शून्य है लेकिन आप विधि को संशोधित करने और वर्तमान संदर्भ को पार करने में आसानी से ठीक कर सकते हैं। संदर्भ के साथ this.cordova बदलें और आपको ठीक होना चाहिए। अंतिम पैरामीटर (ex: childBrowser.openExternal("http://www.google.com", true,this)) के रूप में अपनी गतिविधि को this पर अपनी गतिविधि से कॉल करें। अंत नीचे कोड मेरे लिए काम किया पर

public String openExternal(String url, boolean usePhoneGap) { 
    openExternal(url,usePhoneGap,this.cordova.getActivity()); 
} 
संबंधित मुद्दे