Android-Custom-URL-Schema Verweigert die Arbeit / Wie Sie Navigieren Zurück zur Android-App Nach dem OAuth

Bearbeiten, siehe meine 2. Antwort unter dieser Frage sehr viel präziser, und einfache Darstellung des Problems


Habe ich endlich traf mein Latein am Ende. Ich arbeite an einer cross-Plattform-app (IOS und Android) die Verwendung von Titan und verbindet salesforce-api, die über rest-Aufrufe. Ich habe in 3 Tage und 20 Stunden an diesem Problem und bin hängen geblieben. Jede Unterstützung wäre sehr willkommen! So können Tauchen Sie ein in.

, Was Ich Will, Es Zu Tun:
Die app startet, prüft ob der Benutzer erhält einen token mit oauth2 Genehmigung, wenn nicht gibt die Benutzer, die salesforce login-Bildschirm. Benutzer-Anmeldeinformationen und trifft die Schaltfläche "erlauben" und dann sind wir weitergeleitet, um die app.

Das Problem:
Aus der Beschreibung von dem, was ich will, es zu tun oben, alles funktioniert, außer die Letzte Zeile in Fettschrift. Sobald der Benutzer auf "zulassen" klicken erhalten wir diese unbekannten url-Schema Fehler:

Android-Custom-URL-Schema Verweigert die Arbeit /Wie Sie Navigieren Zurück zur Android-App Nach dem OAuth

Code:
Der code ziemlich viel besteht aus 3 verschiedenen, wichtigen Bereichen

  • meine index.js Datei, die ist, wo der salesforce-login-Aufruf
  • meine AuthService.js Datei, die ist, wo die salesforce-url-info wird aufgerufen, in der index.js
  • meine tiapp.xml wo configuration Zeug gehalten, für android-custom-url-Schema

index.js

var Auth = require('AuthService');

Auth.openLogin();

AuthService.js Nur "openLogin" - Funktion ist hier wirklich wichtig.

var loginWindow;

module.exports = {

  get: function () {
    console.log("made it into the auth.get function");
    return Ti.App.Properties.getObject('auth');
  },

  set: function (data) {
    Ti.App.Properties.setObject('auth', data);
    console.log("auth set function was executed!!!");
  },

  erase: function () {
    Ti.App.Properties.removeProperty('auth');
  },

  openLogin: function () {

    console.log("made it into openLogin!!");


   var webview = Titanium.UI.createWebView({url:'https://login.salesforce.com/services/oauth2/authorize' +
      '?response_type=token&display=touch' +
      '&redirect_uri=testapp://app.open' +
      '&client_id=' + Ti.App.Properties.getString('salesforce_client_id')});


      //console.log("Webview URL: " + webview.getUrl());

    loginWindow = Titanium.UI.createWindow();
    loginWindow.add(webview);
    loginWindow.open({modal:true});



    //attempt to log url to console here
    //console.log("this is the webview URL during callback: " +  webview.getUrl());

  },

  closeLogin: function () {
    loginWindow.close();
  }

};

tiapp.xml ich bin nur mit meinem android-Abschnitt dieses um der Kürze Willen

<android xmlns:android="http://schemas.android.com/apk/res/android"> 
        <manifest android:versionCode="1" android:versionName="1.00">
            <uses-permission android:name="android.permission.INTERNET"></uses-permission>
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
        </manifest>


        <activity
      android:name=".TesterActivity"
      android:exported="true"
      android:label="@string/app_name" >
      <intent-filter>
          <data android:host="app.open" android:scheme="testapp" />
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.BROWSABLE" />
          <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
  </activity>

    </android>

Callback-Url registriert mit Salesforce:
Android-Custom-URL-Schema Verweigert die Arbeit /Wie Sie Navigieren Zurück zur Android-App Nach dem OAuth

Was ich versucht habe:
Ich habe gegoogelt, mich blau zu diesem Thema. Die meisten meiner Bastelei wurde, dass Anpassungen an meine "tiapp.xml" in der änderung der Eigenschaften und Werte dieser Eigenschaften in der android-tag, sowie viele Anpassungen an die "redirect_rui" Wert in meine "AuthService.js die" Datei-und salesforce "callback-url" - Feld (da diese Werte müssen übereinstimmen, oder Sie bekommen einen uri-mismatch " - Fehler).

Hier sind einige Lösungen, die ich angeschaut haben und versucht haben, um zu beheben, mein problem:
https://gist.github.com/jasonkneen/5736738

android-custom-url-Schema..?

Wie die Umsetzung meiner ganz eigenen URI-Schema auf Android

Nur einige zu nennen.

Konsole anmelden, app-Ausführung:

[INFO] :   Emulator is booted
[INFO] :   SD card not required, skipping mount check
[INFO] :   Emulator ready!
[INFO] :   Creating unsigned apk
[INFO] :   Processing /Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/src
[INFO] :   Writing unsigned apk: /Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/bin/app-unsigned.apk
[INFO] :   Using MD5withRSA signature algorithm
[INFO] :   Signing apk: /Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home/bin/jarsigner "-sigalg" "MD5withRSA" "-digestalg" "SHA1" "-keystore" "/Users/michael.kellogg/Library/Application Support/Titanium/mobilesdk/osx/5.1.2.GA/android/dev_keystore" "-storepass" "*******" "-signedjar" "/Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/bin/tester.apk" "/Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/bin/app-unsigned.apk" "tidev"
[INFO] :   Aligning zip file: /Users/michael.kellogg/android-sdk/build-tools/23.0.2/zipalign "-v" "4" "/Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/bin/tester.apk" "/Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/bin/tester.apkz"
[INFO] :   Writing build manifest: /Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/build-manifest.json
[INFO] :   Making sure the adb server is running
[INFO] :   Installing apk: /Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/tester/build/android/bin/tester.apk
[INFO] :   App successfully installed
[INFO] :   Starting app: com.test.test/.TesterActivity
[INFO] :   Application pid: 1160
[INFO] :   Project built successfully in 3m 8s 295ms
[INFO] :   art: Late-enabling JIT
[INFO] :   art: JIT created with code_cache_capacity=2MB compile_threshold=1000
[INFO] :   TiApplication: (main) [2,2] checkpoint, app created.
[INFO] :   TiApplication: (main) [1067,1069] Titanium 5.1.2 (2015/12/16 19:00 ca822b2)
[INFO] :   art: Background sticky concurrent mark sweep GC freed 15623(973KB) AllocSpace objects, 11(384KB) LOS objects, 41% free, 2MB/3MB, paused 2.142ms total 105.631ms
[INFO] :   TiApplication: (main) [383,1452] Titanium Javascript runtime: v8
[INFO] :   TiRootActivity: (main) [0,0] checkpoint, on root activity create, savedInstanceState: null
[WARN] :   TiTempFileHelper: (main) [189,189] The external temp directory doesn't exist, skipping cleanup
[INFO] :   TiRootActivity: (main) [0,0] checkpoint, on root activity resume. activity = com.test.test.TesterActivity@a298e02
[WARN] :   V8Object: (KrollRuntimeThread) [1039,1228] Runtime disposed, cannot set property 'userAgent'
[INFO] :   made it into openLogin!!
[INFO] :   OpenGLRenderer: Initialized EGL, version 1.4
[WARN] :   EGL_emulation: eglSurfaceAttrib not implemented
[WARN] :   OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xb4d32b20, error=EGL_SUCCESS
[INFO] :   WebViewFactory: Loading com.android.webview version 44.0.2403.119 (code 246011900)
[WARN] :   System: ClassLoader referenced unknown path: /system/app/webview/lib/arm
[INFO] :   LibraryLoader: Time to load native libraries: 36 ms (timestamps 588-624)
[INFO] :   LibraryLoader: Expected native library version number "",actual native library version number ""
[INFO] :   LibraryLoader: Expected native library version number "",actual native library version number ""
[INFO] :   chromium: [INFO:library_loader_hooks.cc(120)] Chromium logging enabled: level = 0, default verbosity = 0
[INFO] :   BrowserStartupController: Initializing chromium process, singleProcess=true
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[ERROR] :  SysUtils: ApplicationContext is null in ApplicationStatus
[WARN] :   chromium: [WARNING:resource_bundle.cc(285)] locale_file_path.empty()
[ERROR] :  libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
[ERROR] :  libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
[ERROR] :  eglCodecCommon: glUtilsParamSize: unknow param 0x00008d57
[WARN] :   AudioManagerAndroid: Requires BLUETOOTH permission
[ERROR] :  DataReductionProxySettingListener: No DRP key due to exception:java.lang.ClassNotFoundException: com.android.webview.chromium.Drp
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   AwContents: onDetachedFromWindow called when already detached. Ignoring
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   chromium: [WARNING:data_reduction_proxy_config.cc(423)] SPDY proxy OFF at startup
[WARN] :   EGL_emulation: eglSurfaceAttrib not implemented
[WARN] :   OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xb4d32b40, error=EGL_SUCCESS
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background sticky concurrent mark sweep GC freed 7564(860KB) AllocSpace objects, 25(988KB) LOS objects, 0% free, 11MB/11MB, paused 1.603ms total 308.766ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 1948(144KB) AllocSpace objects, 3(8MB) LOS objects, 22% free, 13MB/17MB, paused 1.658ms total 271.298ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 148(6KB) AllocSpace objects, 13(36MB) LOS objects, 17% free, 19MB/23MB, paused 1.205ms total 327.978ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 91(3KB) AllocSpace objects, 5(14MB) LOS objects, 22% free, 13MB/17MB, paused 1.228ms total 201.595ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Suspending all threads took: 15.737ms
[INFO] :   art: Background sticky concurrent mark sweep GC freed 261(13KB) AllocSpace objects, 2(5MB) LOS objects, 0% free, 25MB/25MB, paused 18.832ms total 174.330ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 98(20KB) AllocSpace objects, 7(19MB) LOS objects, 26% free, 11MB/15MB, paused 3.244ms total 302.681ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 1160
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background sticky concurrent mark sweep GC freed 11512(602KB) AllocSpace objects, 0(0B) LOS objects, 4% free, 14MB/15MB, paused 1.739ms total 174.806ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 301(32KB) AllocSpace objects, 2(5MB) LOS objects, 25% free, 11MB/15MB, paused 2.370ms total 274.103ms
[WARN] :   EGL_emulation: eglSurfaceAttrib not implemented
[WARN] :   OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d719f80, error=EGL_SUCCESS
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background sticky concurrent mark sweep GC freed 358(19KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 17MB/17MB, paused 6.593ms total 277.832ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 148(5KB) AllocSpace objects, 3(8MB) LOS objects, 18% free, 17MB/21MB, paused 7.547ms total 414.524ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background sticky concurrent mark sweep GC freed 30(608B) AllocSpace objects, 1(2MB) LOS objects, 0% free, 23MB/23MB, paused 2.321ms total 159.615ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 36(1168B) AllocSpace objects, 5(14MB) LOS objects, 21% free, 14MB/18MB, paused 1.626ms total 197.175ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background sticky concurrent mark sweep GC freed 21(448B) AllocSpace objects, 0(0B) LOS objects, 0% free, 20MB/20MB, paused 37.280ms total 96.680ms
[INFO] :   art: Background partial concurrent mark sweep GC freed 34(960B) AllocSpace objects, 4(11MB) LOS objects, 30% free, 8MB/12MB, paused 1.475ms total 106.381ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 56(3KB) AllocSpace objects, 3(8MB) LOS objects, 21% free, 14MB/18MB, paused 3.001ms total 243.577ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 1160
[WARN] :   BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 1160
[WARN] :   BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 1160
[INFO] :   I/TiWebChromeClient.console: (main) [21796,21796] Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png (0:data:text/html,chromewebdata)
[INFO] :   art: Background sticky concurrent mark sweep GC freed 337(53KB) AllocSpace objects, 1(2MB) LOS objects, 6% free, 17MB/18MB, paused 43.249ms total 82.260ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 82(11KB) AllocSpace objects, 3(8MB) LOS objects, 21% free, 14MB/18MB, paused 1.613ms total 159.713ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background sticky concurrent mark sweep GC freed 27(544B) AllocSpace objects, 1(2MB) LOS objects, 6% free, 17MB/18MB, paused 21.912ms total 68.965ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[INFO] :   art: Background partial concurrent mark sweep GC freed 39(1056B) AllocSpace objects, 3(8MB) LOS objects, 21% free, 14MB/18MB, paused 1.523ms total 136.698ms
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[WARN] :   art: Attempt to remove non-JNI local reference, dumping thread
[ERROR] :  Surface: getSlotFromBufferLocked: unknown buffer: 0xaad48dc0
[INFO] :   art: Background partial concurrent mark sweep GC freed 40(1104B) AllocSpace objects, 5(14MB) LOS objects, 25% free, 11MB/15MB, paused 3.871ms total 157.623ms
[INFO] :   APSAnalyticsService: Analytics Service Started
[INFO] :   APSAnalyticsService: Stopping Analytics Service
-- End application log -------------------------------------------------------
InformationsquelleAutor Mike Kellogg | 2016-02-16
Schreibe einen Kommentar