I use current stable version 15.44.384.12, it works well. Please download my sample code here to try: https://github.com/xzhan96/XWalkSimpleDemo
Note a change of your code is here “( (scheme != null)”. Best Regards :) Xiaofeng Zhang From: Jonathon Gray [mailto:[email protected]] Sent: Monday, December 21, 2015 10:42 AM To: Zhang, Xiaofeng; [email protected] Subject: Re: [Crosswalk-help] XWalkResourceClient ShouldOveride...- Android - Crosswalk Lite Yes, there is a browser on the device. I tried on both my own cell phone and a virtual device but still getting the same errors. I know this issue can also come up when there are issue in the manifest file. Is there anything that should be changed in the manifest file besides permissions and setting hardware acceleration to true? Thanks, Jonathon ________________________________ From: Zhang, Xiaofeng <[email protected]<mailto:[email protected]>> Sent: Sunday, December 20, 2015 8:00 PM To: Jonathon Gray; [email protected]<mailto:[email protected]> Subject: RE: [Crosswalk-help] XWalkResourceClient ShouldOveride...- Android - Crosswalk Lite Hi Jonathon Thanks for using Crosswalk. Which version you are using? I make a little change of your code, and it works well. From your error log: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action ... it seems your test devices doesn’t have other browser? The issue shouldn’t be caused by xwalkview, could you double check? @Override public boolean shouldOverrideUrlLoading( XWalkView view, String url ) { Log.d(TAG, "url = " + url.toString()); Uri uri = Uri.parse( url ); if ( uri != null ) { String scheme = uri.getScheme(); Log.d(TAG, "SCHEME = " + scheme); boolean shouldOverride = ( (scheme != null) || scheme.equalsIgnoreCase( "http" ) || scheme.equalsIgnoreCase( "https" ) || scheme.equalsIgnoreCase( "file" ) || scheme.equalsIgnoreCase( "content" ) ); Log.d(TAG, "shouldOverride == " + shouldOverride ); if ( shouldOverride ) { if ( scheme.equalsIgnoreCase( "ps" ) || scheme.equalsIgnoreCase( "pss" ) ) { Uri.Builder builder = uri.buildUpon(); builder.scheme( scheme.equalsIgnoreCase( "ps" ) ? "http" : "https" ); uri = builder.build(); } Intent intent = new Intent( Intent.ACTION_VIEW, uri ); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); return true; } } return false; } Best Regards :) Xiaofeng Zhang From: Crosswalk-help [mailto:[email protected]] On Behalf Of Jonathon Gray Sent: Sunday, December 20, 2015 1:36 PM To: [email protected]<mailto:[email protected]> Subject: [Crosswalk-help] XWalkResourceClient ShouldOveride...- Android - Crosswalk Lite Hello All, I am an intern at a small company that is considering replacing the native WebView with Crosswalk. We are using a custom webview client that now extends XWalkResourceClient but we are getting an error in the overridden shouldOverrideUrlLoading method. @Override public boolean shouldOverrideUrlLoading( XWalkView view, String url ) { if ( !Text.isNull( url ) ) { LogUtil.d("SCHEME", url.toString(), context); Uri uri = Uri.parse( url ); if ( uri != null ) { String scheme = uri.getScheme(); LogUtil.d("SCHEME ", scheme, context); boolean shouldOverride = !( scheme == null || scheme.equalsIgnoreCase( "http" ) || scheme.equalsIgnoreCase( "https" ) || scheme.equalsIgnoreCase( "file" ) || scheme.equalsIgnoreCase( "content" ) ); if ( shouldOverride ) { if ( scheme.equalsIgnoreCase( "ps" ) || scheme.equalsIgnoreCase( "pss" ) ) { Uri.Builder builder = uri.buildUpon(); builder.scheme( scheme.equalsIgnoreCase( "ps" ) ? "http" : "https" ); uri = builder.build(); } Intent intent = new Intent( Intent.ACTION_VIEW, uri ); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); LogUtil.d("SCHEME", uri.toString(), context); context.startActivity(intent); return true; } } } return false; } The above code works fine in the WebView version of the app but results in an error in the XWalk version: 12-19 23:18:31.555 2206-2206/? W/System.err�s java.lang.RuntimeException: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action ... 12-19 23:18:31.555 2206-2206/? W/System.err�s at org.xwalk.core.internal.ReflectMethod.invoke(ReflectMethod.java:67) 12-19 23:18:31.555 2206-2206/? W/System.err�s at org.xwalk.core.internal.XWalkResourceClientBridge.shouldOverrideUrlLoading(XWalkResourceClientBridge.java:162) 12-19 23:18:31.555 2206-2206/? W/System.err�s at org.xwalk.core.internal.XWalkResourceClientBridge.shouldOverrideUrlLoading(XWalkResourceClientBridge.java:155) 12-19 23:18:31.556 2206-2206/? W/System.err�s at org.xwalk.core.internal.XWalkContentsClientBridge.shouldOverrideUrlLoading(XWalkContentsClientBridge.java:206) 12-19 23:18:31.556 2206-2206/? W/System.err�s at org.xwalk.core.internal.XWalkContentsClientBridge$InterceptNavigationDelegateImpl.shouldIgnoreNavigation(XWalkContentsClientBridge.java:92) 12-19 23:18:31.556 2206-2206/? W/System.err�s at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method) 12-19 23:18:31.556 2206-2206/? W/System.err�s at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53) 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.os.Handler.dispatchMessage(Handler.java:102) 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.os.Looper.loop(Looper.java:135) 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.app.ActivityThread.main(ActivityThread.java:5257) 12-19 23:18:31.556 2206-2206/? W/System.err�s at java.lang.reflect.Method.invoke(Native Method) 12-19 23:18:31.556 2206-2206/? W/System.err�s at java.lang.reflect.Method.invoke(Method.java:372) 12-19 23:18:31.556 2206-2206/? W/System.err�s at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 12-19 23:18:31.556 2206-2206/? W/System.err�s at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 12-19 23:18:31.556 2206-2206/? W/System.err�s Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=data:text/html, ... 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1781) 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501) 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.app.ContextImpl.startActivity(ContextImpl.java:1243) 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.app.ContextImpl.startActivity(ContextImpl.java:1225) 12-19 23:18:31.556 2206-2206/? W/System.err�s at android.content.ContextWrapper.startActivity(ContextWrapper.java:323) 12-19 23:18:31.557 2206-2206/? W/System.err�s at com.XCENSORX.core.util.DialogUtil$CustomWebViewClient.shouldOverrideUrlLoading(DialogUtil.java:325) 12-19 23:18:31.557 2206-2206/? W/System.err�s at java.lang.reflect.Method.invoke(Native Method) 12-19 23:18:31.557 2206-2206/? W/System.err�s at java.lang.reflect.Method.invoke(Method.java:372) 12-19 23:18:31.557 2206-2206/? W/System.err�s at org.xwalk.core.internal.ReflectMethod.invoke(ReflectMethod.java:61) 12-19 23:18:31.557 2206-2206/? W/System.err�s ... 13 more Thanks for all the help in the past and let me know if there is anything I should include. BR, Jonathon
_______________________________________________ Crosswalk-help mailing list [email protected] https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help
