Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit fc6a26b

Browse files
committed
[[ Bug 16694 ]] Send OnNavigationRequestUnhandled on Android
1 parent d1be65e commit fc6a26b

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

engine/src/java/com/runrev/android/libraries/LibBrowser.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,10 @@ public void onPageFinished(WebView view, String url)
196196
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
197197
{
198198
//doLoadingError(toAPKPath(failingUrl), description);
199-
doLoadingError(failingUrl, description);
199+
if (errorCode == ERROR_UNSUPPORTED_SCHEME)
200+
doUnsupportedScheme(failingUrl);
201+
else
202+
doLoadingError(failingUrl, description);
200203
wakeEngineThread();
201204
}
202205
});
@@ -598,4 +601,5 @@ public static String escapeJSString(String p_string)
598601
public native void doStartedLoading(String url);
599602
public native void doFinishedLoading(String url);
600603
public native void doLoadingError(String url, String error);
604+
public native void doUnsupportedScheme(String url);
601605
}

libbrowser/src/libbrowser_android.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,25 @@ JNIEXPORT void JNICALL Java_com_runrev_android_libraries_LibBrowserWebView_doLoa
976976
MCCStringFree(t_error);
977977
}
978978

979+
extern "C" JNIEXPORT void JNICALL Java_com_runrev_android_libraries_LibBrowserWebView_doUnsupportedScheme(JNIEnv *env, jobject object, jstring url) __attribute__((visibility("default")));
980+
JNIEXPORT void JNICALL Java_com_runrev_android_libraries_LibBrowserWebView_doUnsupportedScheme(JNIEnv *env, jobject object, jstring url)
981+
{
982+
char *t_url;
983+
t_url = nil;
984+
/* UNCHECKED */ MCBrowserJavaStringToUtf8String(env, url, t_url);
985+
986+
if (!MCCStringBeginsWith(t_url, LIBBROWSER_DUMMY_URL))
987+
{
988+
MCBrowser *t_browser;
989+
if (MCBrowserFindWithJavaView(env, object, t_browser))
990+
{
991+
((MCAndroidWebViewBrowser*)t_browser)->OnNavigationRequestUnhandled(false, t_url);
992+
}
993+
}
994+
995+
MCCStringFree(t_url);
996+
}
997+
979998
////////////////////////////////////////////////////////////////////////////////
980999

9811000
class MCAndroidWebViewBrowserFactory : public MCBrowserFactory

0 commit comments

Comments
 (0)