phonegap第三方平台登录的plugin

近一个月奋战在objective-C,java,javascript之中,有时候有种精分的感觉- -,第一版已经开发出来了,ios在审核中。期间遇到不少问题,头一个就是使用第三方平台登录授权。

如果是使用原生代码,会简单一点,毕竟各大平台的文档写的还算是很清楚了,微博有专门的开发qq群,qq则有对应的客服,而人人……po主无话可说。用phonegap的话,稍微麻烦点,要经过三层,原生代码是中间层,和第三方平台和webview进行交互。

期间遇到最坑爹的问题,是下错了sdk

qq登录,想当然的应该在http://open.qq.com/下载sdk嘛对不对!!!

但是发现点击登录一直提示“应用工程配置错误,scheme没有配置”,无法调起qq客户端。毛线啊!明明都配置好了!!而且应用也是审核通过了,神马情况!!

在qq的页面找了半天,终于找到客服了,结果他没法解决,扔了个qq号,让我找qq互联的人= =

好吧,再去找qq互联,结果严重怀疑是个机器人- –

肯定是自动回复有木有!!然后我决定先去开发别的功能,这个先放一放。

后来,其他的第三方平台都好了,就剩qq了魂淡!抱着一线希望再发消息给qq互联,这次居然有人!回!复!!

经过一番沟通,他问我哪里下载的sdk,我说open.qq.com,他说扔给我一个网址,说在这里下

WHAT THE FUCK!!!!

内心有一万头草泥马在奔腾啊!!

 

好了,发泄了一堆,下面是干货

https://github.com/jessiehan/phonegap-social-sso

其实po再勤快点的话,应该写成规范的phonegap plugin发布出去,这样可以直接命令行install了,这个等偶最近的事情处理完再来搞。

 

 

23 Responses

  1. qiyu说道:

    你好哥们,衷心感谢你共享出来,我才做PG开发,你写的这个插件怎么调用啊

  2. yovld说道:

    希望早点看到”规范的phonegap plugin”, 正在学习cordova4.0 可能目录结构发生了也已变化, 现在有点晕, 还不知道怎么用….

  3. arch说道:

    我使用你的代码,目前在模拟器中出现错误:CLASS NOT FOUND

    我是使用插件方式安装,相应的定义为(config.xml):

    QQPlugin
    The QQ login/out plugin
    Apache 2.0
    QQ, login

    安装正常:
    cordova plugin add ../../plugin/com.example.cordova.qqLogin/

    能猜猜是什么问题么?或者分享片断代码?
    非常感谢!

  4. arch说道:

    现在代码这行出错:

    mTencent.login(activity, “all”, listener);

    E/AndroidRuntime( 963): FATAL EXCEPTION: main
    E/AndroidRuntime( 963): Process: com.archcra.testPlugin, PID: 963
    E/AndroidRuntime( 963): java.lang.NullPointerException
    E/AndroidRuntime( 963): at com.example.cordova.qqLogin.QQLogin$2.run(QQLogin.java:77)
    E/AndroidRuntime( 963): at android.os.Handler.handleCallback(Handler.java:733)
    E/AndroidRuntime( 963): at android.os.Handler.dispatchMessage(Handler.java:95)
    E/AndroidRuntime( 963): at android.os.Looper.loop(Looper.java:137)
    E/AndroidRuntime( 963): at android.app.ActivityThread.main(ActivityThread.java:4998)
    E/AndroidRuntime( 963): at java.lang.reflect.Method.invokeNative(Native Method)
    E/AndroidRuntime( 963): at java.lang.reflect.Method.invoke(Method.java:515)
    E/AndroidRuntime( 963): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
    E/AndroidRuntime( 963): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
    E/AndroidRuntime( 963): at dalvik.system.NativeStart.main(Native Method)
    W/ActivityManager( 381): Force finishing activity com.archcra.testPlugin/.CordovaApp
    D/gralloc ( 54): Registering a buffer in the process that created it. This may cause memory ordering problems.

    请问能给个提示么?

  5. arch说道:

    现查到是mTencent是null:

    Context context = this.cordova.getActivity().getApplicationContext();
    mTencent = Tencent.createInstance(APPID, context);

    这个估计是context导致,需要什么样的context?

  6. arch说道:

    问题解决了,是Androidmanisfest.xml中缺Activity,参照SDK示例中加上即不报错了。
    楼主强大。

  7. 无声说道:

    楼主英明神武,求QQ

  8. chengrenz说道:

    您好,微博安卓 的登录
    import com.flipped.match.Filpped;

    提示找不到,怎么弄。

  9. chengrenz说道:

    好了,解决了,您能再发布一个微信sso登录的插件吗,多谢谢了。

  10. 123321说道:

    po主github说好的demo那

  11. perry说道:

    po主,qq,微博分享的插件能传一个到github吗,多谢 ❗

  12. wangchunru说道:

    登录后如何获取用户信息?

  13. Cindy说道:

    po主,import com.flipped.match.Filpped;这个要加一个什么包进去啊。求告知小白

  14. chen说道:

    :)博主可以发个分享的插件吗