cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Aplikasi satu halaman yang dibangunkan oleh Angular, cara melaksanakan kebenaran halaman web dengan betul dan memanggil js sdk dalam WeChat

Halaman web pautan luaran akaun awam WeChat telah dijadikan angularaplikasi satu halaman menggunakan Pada masa ini, kami menghadapi masalah dengan kebenaran halaman web WeChat dan menghubungi js sdk


Keizinan WeChat

Setahu saya setakat ini, selepas memanggil kebenaran WeChat, url masuk aplikasi satu halaman akan kelihatan seperti ini (dengan andaian nama domainnya ialah: example.com):

atau (dengan html5 mode didayakan) kelihatan seperti ini:

?code=aaabbb, diisi apabila mengubah hala selepas kebenaran WeChat Hanya dengan ini kami boleh mendapatkan maklumat pengguna lanjut > Dapatkan kod

Setakat ini, tidak akan ada masalah

Panggil js sdk

Memandangkan pelanggan Android WeChat tidak menyokong ciri H5 baharu pushState, url ② ditinggalkan (ujian peribadi, ia tidak lulus pengesahan), jadi url masuk adalah seperti ini:

Sekarang inilah masalahnya Jika tiada

, ia boleh lulus pengesahan tandatangan, dan kemudian berjaya menghubungi js sdk Tetapi keadaan sebenar adalah: jika kebenaran diperlukan, mesti wujud, dan pengesahan tandatangan mesti gagal. Jadi bagaimana untuk menyediakan keizinan dan panggilan SDK? ? ? ?code=aaabbb?code=aaabbb

Pemikiran dan amalan semasa saya ialah: Selepas WeChat membenarkan pengalihan ke
, dapatkan kod dan kemudian

. Dengan melakukan ini, kami boleh mendapatkan maklumat pengguna dan memanggil SDK dengan jayanya, tetapi masalahnya ialah setiap kali kami memasuki aplikasi, http://example.com?code=aaabbb/#/home akan dimuat semula dua kali location.href = http://example.com/#/home, yang menjadikan pengalaman pengguna sangat teruk, dan saya boleh Tidak menerimanya walaupun saya mempunyai gangguan obsesif-kompulsif.

Tolong berikan saya penyelesaian yang boleh dipercayai

phpcn_u1582phpcn_u15822839 hari yang lalu955

membalas semua(5)saya akan balas

  • 黄舟

    黄舟2017-05-15 17:14:10

    Halaman hadapan tulen tidak boleh dilaksanakan Anda hanya boleh mengkonfigurasi nama domain halaman panggil balik kebenaran ke pelayan hujung belakang, dan kemudian mengubah halanya dari hujung belakang

    .

    balas
    0
  • PHPz

    PHPz2017-05-15 17:14:10

    Anda boleh menggunakan indexOf() untuk mendapatkan nilai kod

    var url  = 'http://example.com?code=aaabbb/#/home';
    var n = url.indexOf('code=')+5;
    var m = url.indexOf('/#');
    var code = url.substr(n, m-1);

    Dengan cara ini anda boleh mendapatkan nilai kod

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:14:10

    Halaman hadapan tulen tidak boleh dilaksanakan Kebetulan baru-baru ini saya telah melakukan projek serupa, yang turut menggunakan angularjs dan melaksanakan program satu halaman melalui angular-route.js.

    Panggil antara muka latar belakang melalui ajax dalam program halaman tunggal (index.html),
    Jika berjaya, kembalikan: {status:true,...}
    Jika tidak log masuk dan gagal, kembalikan: {status:falst,next: 'log masuk',errmsg :'Ralat'}
    Ralat lain dikembalikan: {status:falst,next:'Next operation',errmsg:'Error'}

    Jika status pulangan result.status==false, result.next=='login':

    case "login":
        $http.get($api.callback($api.login)).success(function(val){
            //通过后台返回 授权地址
            location.href = val.loginUrl;
        });
        return;

    Beri kuasa untuk melompat ke wxlogin.php Selepas mengesahkan bahawa log masuk berjaya, selepas menetapkan SESI, lompat ke program satu halaman (index.html)
    Atur cara akan terus memanggil antara muka , ia mengembalikan: {status:true ,...}

    balas
    0
  • 某草草

    某草草2017-05-15 17:14:10

    Poster asal berakhir dengan location.href=""?

    balas
    0
  • PHP中文网

    PHP中文网2017-05-15 17:14:10

    Bagaimanakah perkara ini harus diselesaikan? Penulis akan menyiarkan jawapan untuk menyelesaikannya. Saya juga akan menggunakan Vue untuk membangunkan WeChat

    balas
    0
  • Batalbalas