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]
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

Reply via email to