精华内容
下载资源
问答
  • 就是当用户首次打开小程序,会请求用户授权获取地理位置,当用户拒绝授权获取位置后,在需要用户地理位置的时候(比如打卡),要提供一个按钮来触发用户授权,当用户点击按钮,来到授权设置页面,点击授权后,返回,...

    网上这类文章挺多,可惜不符合我的需求。官方的文档也是非常地奇葩。就是当用户首次打开小程序,会请求用户授权获取地理位置,当用户拒绝授权获取位置后,在需要用户地理位置的时候(比如打卡),要提供一个按钮来触发用户授权,当用户点击按钮,来到授权设置页面,点击授权后,返回,这时候,授权按钮隐藏掉。

    基本概念:用户第一次使用wx.getLocation,会自动弹出授权卡,拒绝一次后,下次再调用wx.getLocation就不会自动弹出授权框了。可以在fail里获得这个反馈情况,但是,你获得了反馈情况,还是不能弹出授权框,有些要求必须是通过点击按钮才行,比如getUserinfo,有些必须是用openSetting设置小程序权限才行,而openSetting不会显示全部的授权,只显示被你拒绝过的授权,所以,要提前尝试获取用户授权,如果用户同意,则全局变量给它赋值true,如果用户拒绝,则在需要的地方,想办法再引导用户授权,通过按钮,getUserinfo直接可以授权,而getLoaction就必须通过openSetting小程序权限设置页面才能继续授权。很绕了。

    知识点一:

    wx.getLocation(Object object)

    调用前需要 用户授权 scope.userLocation

    获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。

    ——意思就是说调用这个接口,第一次会自动弹出授权框,但它没说第二次不自动弹出,看下面:

    知识点二:

    授权

    部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个 scope ,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用。

    部分接口需要获得用户授权同意后才能调用。此类接口调用时:——到底哪些啊??

    • 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
    • 如果用户已授权,可以直接调用接口;
    • 如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。

    获取用户授权设置

    开发者可以使用 wx.getSetting 获取用户当前的授权状态。

    打开设置界面

    用户可以在小程序设置界面(「右上角」 - 「关于」 - 「右上角」 - 「设置」)中控制对该小程序的授权状态。——很少这样去用

    开发者可以调用 wx.openSetting 打开设置界面,引导用户开启授权。——肯定是这个比较人性。

    提前发起授权请求

    开发者可以使用 wx.authorize 在调用需授权 API 之前,提前向用户发起授权请求

     

    知识点三:

    wx.getSetting(Object object)

    基础库 1.2.0 开始支持,低版本需做兼容处理

    获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限

     

    wx.openSetting(Object object)

    基础库 1.1.0 开始支持,低版本需做兼容处理

    调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限

    注意:2.3.0 版本开始,用户发生点击行为后,才可以跳转打开设置页,管理授权信息。详情

    <button wx:if="{{!hasLocation}}" open-type="openSetting" bindopensetting="callback">打开设置页</button>
      callback: function (res) {
        console.log(res)
        console.log(res.detail.authSetting['scope.userLocation'])
        // detail:
        //  authSetting:
        //   scope.userInfo:false
        //   scope.userLocation:false
        if (res.detail.authSetting['scope.userLocation']){
          this.setData({
            hasLocation:true
          })
        }
      }

    打开小程序设置页(wx.openSetting)接口调整官

    微信团队2018-09-1241255浏览

    开发者可以通过 wx.openSetting 接口来打开小程序设置界面并返回用户的设置结果。在原来的 wx.openSetting 接口中,我们允许开发者直接调用此接口,但目前我们发现有不少开发者滥用此接口,使用户在无任何操作时,不断地强行跳转至设置页,导致用户无法正常使用甚至无法退出小程序。

    为保证用户获得更顺畅的小程序使用体验,避免此类滥用情况,我们对该接口进行了调整。

    调整后“打开小程序设置页”将支持以下两种实现方式:

    • 方法1:使用 button 组件来使用此功能,示例代码如下:

      <button open-type="openSetting" bindopensetting="callback">打开设置页</button>
    • 方法2:由点击行为触发wx.openSetting接口的调用,示例代码如下:

      <button bindtap="openSetting">打开设置页</button>  openSetting() {  wx.openSetting()}

      方法2已在最新版开发者工具中支持(基础库切到2.2.4及以上),开发者可以尽早适配。

     

    展开全文
  • android webview支持并获取位置信息

    千次阅读 2016-05-26 14:33:43
    在java文件中设置webview, WebView webView = (WebView)findViewById(R.id.webview); WebSettings webSettings = webView.getSettings(); //webview webSettings.setJavaScriptEnabled(true); //启用数据库 ...

    在java文件中设置webview,

    WebView webView = (WebView)findViewById(R.id.webview);

    WebSettings webSettings = webView.getSettings();

    //webview

    webSettings.setJavaScriptEnabled(true);

    //启用数据库  

    webSettings.setDatabaseEnabled(true);    

    //设置定位的数据库路径  

    String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); 

    webSettings.setGeolocationDatabasePath(dir);   

    //启用地理定位  

    webSettings.setGeolocationEnabled(true);  

    //开启DomStorage缓存

    webSettings.setDomStorageEnabled

    webView.setWebChromeClient(new WebChromeClient() {

      @Override

           public void onReceivedIcon(WebView view, Bitmap icon) {

    super.onReceivedIcon(view, icon);

    }

      @Override
      public void onGeolocationPermissionsShowPrompt(String origin,Callback callback) {

    callback.invoke(origin, true, false);  

    super.onGeolocationPermissionsShowPrompt(origin, callback);

    }

      });


    //配置权限

      <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    (在某些限制应用定位权限的手机中,,需要开启应用的定位权限,否则会定位失败)


    展开全文
  • 允许模拟位置

    最近看到有人问 “怎么才能获取到 手机是否打开了 允许模拟位置”呢?

    其实很简单,这些设置项,基本都是写在数据库里,所以只要看看setting的源码(或者查看logcat可能也可以得到些有用的信息),就能知道该配置是写了数据库的哪个字段。

    允许模拟位置

    boolean isOpen = Settings.Secure.getInt(context.getContentResolver(),Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0;

    很明显,Settings.Secure.ALLOW_MOCK_LOCATION 就是存放允许模拟位置的数据库字段了,打开时,值是1,关闭时,值是0


    转载请声明原文地址: http://blog.csdn.net/sagittarius1988/article/details/38108951

    展开全文
  • 通过淘宝接口用ip获取位置信息

    千次阅读 2018-08-31 11:32:14
    1.获取客户端ip //不同环境下获取真实的IP ... //判断服务器是否允许$_SERVER if(isset($_SERVER)){ if(isset($_SERVER[HTTP_X_FORWARDED_FOR])){ $realip = $_SERVER[HTTP_X_FORWARDED_FO...

    1.获取客户端ip

    //不同环境下获取真实的IP
    function get_ip(){
        //判断服务器是否允许$_SERVER
        if(isset($_SERVER)){    
            if(isset($_SERVER[HTTP_X_FORWARDED_FOR])){
                $realip = $_SERVER[HTTP_X_FORWARDED_FOR];
            }elseif(isset($_SERVER[HTTP_CLIENT_IP])) {
                $realip = $_SERVER[HTTP_CLIENT_IP];
            }else{
                $realip = $_SERVER[REMOTE_ADDR];
            }
        }else{
            //不允许就使用getenv获取  
            if(getenv("HTTP_X_FORWARDED_FOR")){
                  $realip = getenv( "HTTP_X_FORWARDED_FOR");
            }elseif(getenv("HTTP_CLIENT_IP")) {
                  $realip = getenv("HTTP_CLIENT_IP");
            }else{
                  $realip = getenv("REMOTE_ADDR");
            }
        }
    
        return $realip;
    }      

    2.通过接口获取地理位置

    function get_info($ip){
    
        $url ="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
    
        $ch = curl_init();
        //设置选项,包括URL
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
    
        //执行并获取HTML文档内容
        $output = curl_exec($ch);
        //释放curl句柄
        curl_close($ch);
        return $output;
    }
    

     

    展开全文
  • iOS中的地理位置获取及plist设置

    千次阅读 2017-02-28 10:32:23
    1.在前台的时候获取地理位置信息 ios 8/9 在info.plist中配置NSLocationWhenInUseUsageDescription的值,否则上面的方法无效 调用.requestWhenInUseAuthorization()获取前台获取地理位置权限 调用...
  • 1.添加权限--6.0之后要动态获取,下面会说&lt;uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION"/&gt;2.直接上代码,不多说,代码中注释很详细。private static final ...
  • GPS定位获取位置,获取天气

    千次阅读 2016-07-15 13:30:25
    //通过经纬度获取位置 Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault()); List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1); ...
  • 一切正常步骤进行但是还是没有获得定位,得到的坐标总是49E.xxxx,错误代码总是62 ...自己的程序没有真正获取手机的权限,要手动到‘电脑管家’中设置该权限为允许。 转载于:https://www.cnblogs.com/zhaoyanhaoBlo...
  • 微信公众号关联网页获取位置信息,可以参照《微信公众平台技术文档》-&gt; 微信JS-SDK说明文档,官方链接地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;id=mp1421141115步骤一:绑定域名先...
  • 做地图类应用的同学应该都知道为了避免软件模拟位置影响正常流程的进行我们一般都会判断用户手机是否打开了模拟位置设置,若打开了则终止用户流程,提醒用户关闭模拟位置设置。在android系统的开发者选项中有一个...
  • //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 ...2、调用该方法需要在Info.plist中设置NSLocationAlwaysUsageDescription的字符串,这个值 (NSString *)会显示在系统提示框中 ;不要自己加值就是(Boo
  • 1. 用GPS或者Network获取位置信息 src/com/wind/whereami/LocationSend.java package com.wind.whereami; import android.app.Activity; import android.content.Context; import android.content.Intent; import ...
  • 动态的开启手机权限(获取位置权限)

    千次阅读 2016-12-07 09:34:47
    .setMessage("请在-应用设置-权限-中,允许地图获取手机的位置权限") .setPositiveButton("立即开启", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int ...
  • 网上有好多获取天气预报接口的方法和获取大致位置的方法,个人感觉实现自动获取位置并播报天气的功能没有必要加入地图SDK和天气预报的SDK,今天实现一下AndroiSDK自带的定位方法和中华万年历上提供的天气预报接口。...
  • 用户第一次调用此方法会弹出授权框,此外只有用户选择了允许一次,下次用户调用这个方法才会弹出询问框,选择不允许或是使用期间允许,下次调用这个方法都不会弹出询问框 @property (nonatomic, strong) ...
  • 根据GPS获取手机位置

    千次阅读 2018-04-18 09:14:45
    根据GPS获取手机位置坐标的类package com.wjy.project.railway.tools; import android.Manifest; import android.app.Service; import android.content.Intent; import android.content.SharedPreferences; import ...
  • 小程序提交审核和发布后,多种机型使用起来发现了一个问题,在小程序设置中没有显示具体的权限信息。如下图所示 当考虑到用户使用小程序时,若缺少对应权限,按照官方案例讲的方式是进行自动导航跳转“设置”页面...
  • 微信小程序之获取当前地理位置及通过地理位置获取经纬度一、准备工作二、获取当前地理位置三、通过地址获取经纬度收工 一、准备工作 1.获取appId和Secret : 开发=&amp;amp;amp;gt;开发设置 2.获取腾讯位置服务...
  • Android 使用开发者模式允许模拟位置

    千次阅读 2020-05-10 13:45:27
    获取位置管理者 // 获取位置管理服务 val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager 3. 添加请求位置更新 locationManager?.requestLocationUpdates( LocationManager.GPS...
  • enableMessage:true //设置允许信息窗发送短息 }; function addMouseoverHandler(content,marker){ /***** 鼠标滑过事件 ******/ marker.addEventListener("mouseover",function(e){ openInfo...
  • vue定位 获取用户位置信息

    万次阅读 2019-07-04 10:17:43
    关于定位功能尝试了很多种方法,h5定位,百度地图定位,高德地图定位,因为ip定位只能定位到城市,所以我选用的是浏览器定位。...百度定位:定位的位置与实际位置偏差太大,我从郑州的一个小县城定位到了...
  • mpvue小程序获取地理位置

    千次阅读 2019-03-18 18:00:48
    针对用户先是允许授权 在设置不授权的这种情况的处理 // 获取用户地址 getLocation(){ wx.getSetting({ success: function(e) { console.log(e.authSetting["scope.userLocation"]); let userLocation = ...
  • uni-app获取当前位置

    千次阅读 2020-04-16 09:38:02
    弹出弹框,如果允许直接授权,如果不允许,弹出请授权位置的窗口 点击确认授权,跳到设置授权页面 如果打开获取地理位置,否则继续弹出请授权位置的弹框 在methods中写方法: / 判断是否已经授权 getSetting() ...
  • 微信公众号获取用户位置信息

    千次阅读 2018-08-29 13:46:41
    通过百度地图接口,通过转换后的经纬度获取对应的位置信息 一.微信公众好SDK使用 步骤一:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注:登录后可在“开发者...
  • android 获取当前位置

    万次阅读 多人点赞 2011-12-17 10:49:54
    如果手机内置GPS接受模块,即使手机处于信号盲区,依然可以获取位置信息。 2. NETWORK_PROVIDER 网络定位,室内室外都可以使用,响应速度快,耗电量少。 下面演示 根据条件,自动选择最优的定位方式 ...
  • html5中获取地理位置信息

    千次阅读 2016-08-13 11:30:17
    本文结合实例给大家分享如何使用HTML5,借助百度、谷歌地图等接口来获取用户准确的地理位置信息。  定位功能(Geolocation)是HTML5的新特性,因此只有在支持HTML5的现代浏览器上运行,特别是手持设备如iphone,...
  • Android获取手机位置代码实现

    千次阅读 2015-03-31 22:29:29
    // 给位置提供者设置条件 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); // 设置参数细化: // criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度 ...
  • 微信公众号开发之获取用户地理位置微信公众号需要设置JS安全访问域名 域名设置请不要加上https: 如果你的域名是https://mp.csdn.net/postedit 请设置为:mp.csdn.net/postedit 1、后台获取验证签名信息 ...
  • //不允许地理授权不一样时的页面 &lt;view class="showFlag" wx:if="{{showFlag}}" &gt; &lt;view class="showFg"&gt; &lt;view class="showg"&...
  • 获取光标的位置

    千次阅读 2016-05-28 06:58:35
    版权声明:本文为博主原创文章,未经博主允许不得转载。  获取控件的焦点方法为 Getforce 一: 实现方法:主要在WM_MouseMove消息内部实现坐标的获取  使用函数:GetCursorPos(&p)   二:测试代码  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 422,542
精华内容 169,016
关键字:

怎么设置允许获取位置