Ejemplo n.º 1
0
JNIEXPORT void JNICALL Java_org_cef_browser_CefBrowser_1N_N_1RunFileDialog
  (JNIEnv *env, jobject obj, jobject jmode, jstring jtitle, 
   jstring jdefaultFileName , jobject jacceptTypes, jobject jcallback) {
  CefRefPtr<CefBrowser> browser = JNI_GET_BROWSER_OR_RETURN(env, obj);

  std::vector<CefString> accept_types;
  GetJNIStringVector(env, jacceptTypes, accept_types);

  CefBrowserHost::FileDialogMode mode;
  if (IsJNIEnumValue(env, jmode, 
                     "org/cef/handler/CefDialogHandler$FileDialogMode",
                     "FILE_DIALOG_OPEN")) {
    mode = FILE_DIALOG_OPEN;
  } else if (IsJNIEnumValue(env, jmode,
                            "org/cef/handler/CefDialogHandler$FileDialogMode",
                            "FILE_DIALOG_OPEN_MULTIPLE")) {
    mode = FILE_DIALOG_OPEN_MULTIPLE;
  } else if (IsJNIEnumValue(env, jmode,
                            "org/cef/handler/CefDialogHandler$FileDialogMode",
                            "FILE_DIALOG_SAVE")) {
    mode = FILE_DIALOG_SAVE;
  } else {
    mode = FILE_DIALOG_OPEN;
  }

  browser->GetHost()->RunFileDialog(mode,
                                    GetJNIString(env, jtitle),
                                    GetJNIString(env, jdefaultFileName),
                                    accept_types,
                                    new RunFileDialogCallback(env, jcallback));
}
Ejemplo n.º 2
0
JNIEXPORT void JNICALL
Java_org_cef_network_CefCookieManager_1N_N_1SetSupportedSchemes(
    JNIEnv* env,
    jobject obj,
    jobject jschemes) {
  CefRefPtr<CefCookieManager> manager =
      GetCefFromJNIObject<CefCookieManager>(env, obj, "CefCookieManager");
  if (!manager.get())
    return;

  std::vector<CefString> schemes;
  GetJNIStringVector(env, jschemes, schemes);
  // TODO(JCEF): Expose the callback object.
  manager->SetSupportedSchemes(schemes, NULL);
}
Ejemplo n.º 3
0
JNIEXPORT void JNICALL
Java_org_cef_callback_CefFileDialogCallback_1N_N_1Continue(
    JNIEnv* env,
    jobject obj,
    jint selectedAcceptFilter,
    jobject jFilePaths) {
  CefRefPtr<CefFileDialogCallback> callback =
      GetCefFromJNIObject<CefFileDialogCallback>(env, obj,
                                                 "CefFileDialogCallback");
  if (!callback.get())
    return;

  std::vector<CefString> filePaths;
  GetJNIStringVector(env, jFilePaths, filePaths);
  callback->Continue(selectedAcceptFilter, filePaths);

  // Clear the reference added in DialogHandler::OnFileDialog.
  SetCefForJNIObject<CefFileDialogCallback>(env, obj, NULL,
                                            "CefFileDialogCallback");
}