Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

unity微信登录(android 和 ios)老师可以出一期视频吗?
崔璀璨夺目发起了话题2017-09-13
24
回复
2350
浏览

siki老师,可以吗?

所有回复
  • siki • 2017-09-14

    可以的哈,在计划中的

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
  • 崔璀璨夺目 • 2017-09-15

    我现在可以拉起微信登录界面,能帮我分析分析吗?哪里不对

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
  • 崔璀璨夺目 • 2017-09-15

    这几天可以吗?我挺着急的,感觉没问题了,但是就是不对,不知道哪里出问题了

    • siki • 2017-09-16

      这几天可能不行哈,还有别的工作要做和课要录制

      (0) 回复
    • 崔璀璨夺目 • 2017-09-18

      siki老师,我点击微信登录,然后就跳转到微信,接着软件就闪退了,原因可能是什么呢??

      (0) 回复
    • 王志刚 • 2017-09-18

      我遇到过,当时是屏幕旋转的问题,你可以试试

      (0) 回复
    • 崔璀璨夺目 • 2017-09-18

      现在android里面
      SendAuth.Req req = new SendAuth.Req();
      req.scope = "snsapi_userinfo";
      req.state = "app_wechat";
      api.sendReq(req); //我用adb打印显示这里报错
      你做过可以帮帮我吗

      (0) 回复
    • 崔璀璨夺目 • 2017-09-18

      可以加个微信吗CC1352746230

      (0) 回复
    • 崔璀璨夺目 • 2017-09-18

      能给我发一个你之前做的jar包吗??

      (0) 回复
    • YaoWe • 2018-01-14

      回复 @ 崔璀璨夺目: 你这个问题解决了么。能告诉下怎么解决的吗

      (0) 回复
    还有2条回复,点击查看
    你还没有登录,请先登录或注册!
  • siki • 2017-09-18

    是不是unity和android通信实现的,那么在android里面的代码可以启动一个新的线程单独调用

    • 崔璀璨夺目 • 2017-09-18

      android里面
      SendAuth.Req req = new SendAuth.Req();
      req.scope = "snsapi_userinfo";
      req.state = "app_wechat";
      api.sendReq(req); //我用adb打印显示这里报错

      (0) 回复
    • 崔璀璨夺目 • 2017-09-18

      如果我的微信有账号登录,在我的APP里面点击微信登录闪退,然后退出微信登录,可以拉起微信登录的界面

      (0) 回复
    • 崔璀璨夺目 • 2017-09-18

      然后输入微信账号点击登录就又闪退了

      (0) 回复
    • siki • 2017-09-18

      回复 @ 崔璀璨夺目: 这边闪退是 微信闪退还是开发的游戏闪退

      (0) 回复
    • siki • 2017-09-18

      回复 @ 崔璀璨夺目: 如果是游戏闪退的话,可能是你没有接收回调吧

      (0) 回复
    • siki • 2017-09-18

      回复 @ 崔璀璨夺目: 你先试下我说的 SendAuth.Req req = new SendAuth.Req();
      req.scope = "snsapi_userinfo";
      req.state = "app_wechat";
      api.sendReq(req); //我用adb打印显示这里报错 把这段代码 开启一个新的线程里面调用

      (0) 回复
    • 崔璀璨夺目 • 2017-09-19

      我在unity里调用MainActivity 的 weiLogin()

      (0) 回复
    还有2条回复,点击查看
    你还没有登录,请先登录或注册!
  • 崔璀璨夺目 • 2017-09-19

     

    //MainActivity 类 继承unityplayerActivity
     public void weiLogin() {  
    //		  if (!WXEntryActivity.api.isWXAppInstalled())
    //	        {
    //	            Toast.makeText(MainActivity.this, "请安装微信", Toast.LENGTH_LONG).show();
    //	            return;
    //	        }
    	      WXEntryActivity.loginWeixin(MainActivity.this, MyApplication.sApi,new WXEntryActivity.WeChatCode() {
    	    	  
    	          @Override  
    	          public void getResponse(String code) {  
    	              // 通过code获取授权口令access_token  
    	              getAccessToken(code);  
    	              Log.i("获取token成功",code.toString());  
    	              // 从手机本地获取存储的授权口令信息,判断是否存在access_token,不存在请求获取,存在就判断是否过期  
    	              String accessToken = (String) ShareUtils.getValue(MainActivity.this, WEIXIN_ACCESS_TOKEN_KEY,  
    	                      "none");  
    	              String openid = (String) ShareUtils.getValue(MainActivity.this, WEIXIN_OPENID_KEY, "");  
    	              if (!"none".equals(accessToken)) {  
    	                  // 有access_token,判断是否过期有效  
    	                  isExpireAccessToken(accessToken, openid);  
    	              } else {  
    	                  // 没有access_token  
    	                  getAccessToken(code);  
    	                  Log.i("获取token成功",code.toString());  
    	              }  
    	          }  
    	      });  
    	  }
    //WXEntryActivity 类 继承 Activity
    
     public static void loginWeixin(Context context,IWXAPI api,  WeChatCode wechatCode) {  
    
            if (!api.isWXAppInstalled()) {  
                Toast.makeText(context.getApplicationContext(), "please step up WeChat", Toast.LENGTH_SHORT)  
                        .show();  
                return;  
            }  
            mWeChatCode=wechatCode;  
            SendAuth.Req req = new SendAuth.Req();  
            req.scope = "snsapi_userinfo";  
            req.state = "app_wechat";  
            api.sendReq(req); 
        } 
     @Override
        public void onReq(BaseReq req) {  
            switch (req.getType()) {  
                case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX: 
                    break;  
                case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX: 
                    break;  
                default:  
                    break;  
            }  
           
        }  
      
        @Override
        public void onResp(BaseResp resp) {  
        	switch (resp.errCode) {  
            case BaseResp.ErrCode.ERR_OK:  
                String code = ((SendAuth.Resp) resp).code;  
                mWeChatCode.getResponse(code);  
                break;  
        	} 
        } 
        public interface WeChatCode {  
            void getResponse(String code);  
        } 
    
    
    

     

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
  • siki • 2017-09-19

    1、这边闪退是 微信闪退还是开发的游戏闪退

    2、这个虽然不是微信登录,但是某些机制一样,你可以看下这个文档

    http://blog.csdn.net/rcfalcon/article/details/52518700

    可以关注下 sendReq方法并非阻塞Unity线程的,需要使用回调机制 这个内容

    看下能否解决

    • 崔璀璨夺目 • 2017-09-19

      是开发的游戏闪退,如果微信没有账号登录可以拉起微信登录的界面,假如微信有账号登录,游戏就闪退。

      (0) 回复
    • siki • 2017-09-19

      回复 @ 崔璀璨夺目: 看下我说的第二个 有没有启发

      (0) 回复
    • 崔璀璨夺目 • 2017-09-20

      回复 @ siki:没有,感觉没毛病,这几天也看了不少,感觉这流程没问题呀,

      (0) 回复
    还有-2条回复,点击查看
    你还没有登录,请先登录或注册!
  • 崔璀璨夺目 • 2017-09-19
    public class WXEntryActivity  extends Activity implements IWXAPIEventHandler {
    	private static final String WEIXIN_ACCESS_TOKEN_KEY = "wx_access_token_key";  
        private static final String WEIXIN_OPENID_KEY = "wx_openid_key";  
        private static final String WEIXIN_REFRESH_TOKEN_KEY = "wx_refresh_token_key";  
        public static WeChatCode mWeChatCode; 
        public static IWXAPI api;
       
        public WeChatCode getWeChatCode() {  
            return mWeChatCode;  
        }  
      
        public void setWeChatCode(WeChatCode weChatCode) {  
            mWeChatCode = weChatCode;  
        } 
        
        @Override
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            MyApplication.sApi.handleIntent(getIntent(), this);  
        } 
        
        public static IWXAPI initWeiXin(Context context, @NonNull String weixin_app_id) {  
            if (TextUtils.isEmpty(weixin_app_id)) {  
            Toast.makeText(context.getApplicationContext(), "weixin_app_id", Toast.LENGTH_SHORT).show();  
            }  
            api = WXAPIFactory.createWXAPI(context, weixin_app_id, true);  
            api.registerApp("weixin_app_id");  
            return api;  
            } 
    //MyApplication
    public class MyApplication extends Application {
        public static IWXAPI sApi;
        public static Context mContext;
        @Override
        public void onCreate() {
            super.onCreate();
            mContext=this;
            //初始化微信
            sApi = WXEntryActivity.initWeiXin(this, AppConst.WEIXIN_APP_ID);
            UnityPlayer.UnitySendMessage("Wechat","response","运行了吗?????MyApplication");  
            initOkHttp();
        }
        //封装okhttp框架的初始化配置
        private void initOkHttp() {
            HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null, null, null);
            CookieJarImpl cookieJar = new CookieJarImpl(new PersistentCookieStore(getApplicationContext()));
            OkHttpClient okHttpClient = new OkHttpClient.Builder()
                    .addInterceptor(new LoggerInterceptor("TAG"))
                    .cookieJar(cookieJar)
                    .connectTimeout(20000L, TimeUnit.MILLISECONDS)
                    .readTimeout(20000L,TimeUnit.MILLISECONDS)
                    .writeTimeout(20000L,TimeUnit.MILLISECONDS)
                    .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                    //其他配置
                    .build();
            OkHttpUtils.initClient(okHttpClient);
        }
    }
    
     

     

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!