hybrid.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. function os_proxy(fn){
  2. var u = navigator.userAgent.toLowerCase();
  3. if (!fn.hasOwnProperty('browser')){
  4. fn['browser'] = function(){
  5. console.log('没有定义方法');
  6. return false;
  7. }
  8. }
  9. if ((/android|linux/i.test(u)) && fn.hasOwnProperty('android')){
  10. return fn['android']();
  11. } else if ((/iphone|ipad|ipod/i.test(u)) && fn.hasOwnProperty('ios')){
  12. return fn['ios']();
  13. } else{
  14. return fn['browser']();
  15. }
  16. }
  17. //获取用户的信息
  18. function get_user_info(){
  19. os_proxy({
  20. android: function(){
  21. window.jsapi.getUserInfo('{"callback":"notifyGetUserInfo"}');
  22. },
  23. ios: function(){
  24. window.location.href = 'http://callclient?method=getUserInfo&callback=notifyGetUserInfo';
  25. }
  26. });
  27. }
  28. //保存用户的信息
  29. function notifyGetUserInfo(result){
  30. //alert('notifyGetUserInfo called');
  31. var reg=new RegExp('(\r\n|\r|\n)', 'g');
  32. var _res = JSON.stringify(result).replace(reg, '');
  33. $('#result').val(_res);
  34. var res = JSON.parse(_res);
  35. res = os_proxy({
  36. android: function(){
  37. if (res.success == 1){
  38. res.success = true;
  39. } else {
  40. res.success = false;
  41. }
  42. return res;
  43. },
  44. ios: function(){
  45. if (res && res.hasOwnProperty('success')){
  46. if (res.success == 1){
  47. res.success = true;
  48. } else {
  49. res.success = false;
  50. }
  51. }
  52. return res;
  53. }
  54. });
  55. if (res){
  56. if (res.hasOwnProperty('version')){
  57. app_version = res.version;
  58. }
  59. if (res.hasOwnProperty('deviceId')){
  60. deviceId = res.deviceId;
  61. }
  62. if (res.hasOwnProperty('osVersion')){
  63. osVersion = res.osVersion;
  64. }
  65. if (res.hasOwnProperty('success') && res.success){
  66. do_login(res);
  67. }
  68. }
  69. }
  70. //根据客户端接口或web登录接口初始化用户信息
  71. function do_login(res){
  72. if (res.hasOwnProperty('success')){
  73. user_info = res.data;
  74. }
  75. if (res.hasOwnProperty('success')){
  76. user_id = user_info.id;
  77. }
  78. //$('#result').val('user_id:'+user_id+'<br />'+'osVersion:'+osVersion+'<br />'+'deviceId:'+deviceId+'<br />'+'app_version:'+app_version+'<br />'+'user_name:'+user_info.user_name+'<br />');
  79. }
  80. //分享
  81. function do_share(opts){
  82. var share_img = 'http://www.yiguanjia.club/images/logo.png';
  83. var share_str = '';
  84. var share_url = '';
  85. var title = '';
  86. if (opts.hasOwnProperty('str')){
  87. if (typeof(opts.str) == 'function'){
  88. share_str = opts.str();
  89. } else {
  90. share_str = opts.str;
  91. }
  92. }
  93. if (opts.hasOwnProperty('img')){
  94. share_img = opts.img;
  95. }
  96. if (opts.hasOwnProperty('url')){
  97. share_url = opts.url;
  98. }
  99. if (opts.hasOwnProperty('title')){
  100. title = opts.title;
  101. }
  102. var share_param = {
  103. share_title : title,
  104. share_string : share_str,
  105. share_img_url: encodeURIComponent(share_img),
  106. share_url: encodeURIComponent(share_url)
  107. };
  108. os_proxy({
  109. android: function(){
  110. share_param.share_img_url = share_img;
  111. share_param.share_url = share_url;
  112. window.jsapi.doShare(JSON.stringify(share_param));
  113. },
  114. ios: function(){
  115. window.location.href = 'http://callclient?method=doShare&param=' + JSON.stringify(share_param);
  116. }
  117. });
  118. }
  119. //退出webview
  120. function exit_webview(){
  121. os_proxy({
  122. android: function(){
  123. window.jsapi.exitWebView();
  124. },
  125. ios: function(){
  126. var url = 'http://callclient?method=exitWebView';
  127. window.location.href = url;
  128. }
  129. });
  130. }
  131. //跳转到登录页面
  132. function go_login(){
  133. os_proxy({
  134. android: function(){
  135. window.jsapi.goLogin('{"callback":"notifyGetUserInfo"}');
  136. },
  137. ios: function(){
  138. var url = 'http://callclient?method=goLogin';
  139. url += '&callback=notifyGetUserInfo';
  140. window.location.href = url;
  141. }
  142. });
  143. }
  144. //打开/关闭IOS的左滑返回
  145. function switch_pop_gesture(flag){
  146. os_proxy({
  147. ios: function(){
  148. var url = 'http://callclient?method=switchPopGesture';
  149. url += '&param={"enable":'+flag+'}';
  150. window.location.href = url;
  151. }
  152. });
  153. }
  154. var user_id = 0;
  155. var user_info = null;
  156. var osVersion = '';
  157. var deviceId = '';
  158. var app_version = '2.0';
  159. $(function(){
  160. //get_user_info();
  161. })