2013年10月20日 星期日

Android包html5網頁,用到定位權限時的設定

最近先用動態網頁寫好再用android / ios去包成app的開發方式頗為流行
所以順勢把之前的掌上商城andriod版一點一點地改成mobile web來包看看
不過光是在定位時發生問題.
WebView要如何使用Goelocation的權限呢?
步驟1,在 AndroidManifest.xml 指定以下權限:
   ======================================
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
=============================================
步驟二,在WebView的setting中設定以下權限:
   (假設Activity中有個「mWebView.」WebView型態的變數)
    =============================================
        mWebView.getSettings().setGeolocationEnabled(true);
        mWebView.getSettings().setAppCacheEnabled(true);
        mWebView.getSettings().setDatabaseEnabled(true);
        mWebView.getSettings().setDomStorageEnabled(true);        
   =============================================
步驟三,在遇到請求權限時,包裝的app如何應對?
   ===========================================
          mWebView.setWebChromeClient(new WebChromeClient() {
        public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
           callback.invoke(origin, true, false);
        }
        });        
=====================================
以上,其他的就照大家最常看到的webview應用來做了


沒有留言:

張貼留言