配置選單按鈕掃一掃
剛好這段時間都在做公眾號,所有和大家講講怎麼配置公眾號選單。一般有公眾號自帶的和,自定義的選單配置
/**
* 組裝選單資料
*
* @return
*/
private static Menu getMenu() {
//生成授權頁面資訊
// String StrURL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID"
// + "&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";//
// String strAutoURLuft8 = "";
// String strOpenID = MainConst.getWXAppID();
// String strScope = "snsapi_userinfo";//
// CommonUtil urlUti = new CommonUtil();
// String requestUrl = StrURL.replace("APPID", strOpenID).replace("REDIRECT_URI", strAutoURLuft8).replace("SCOPE", strScope);
Button mainBtn1 = null;
mainBtn1 = new ViewButton();
((ViewButton)mainBtn1).setName("管理員");
((ViewButton)mainBtn1).setType("view");
((ViewButton)mainBtn1).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_boss() + "index.html"));
// Button btn21 = null;
// btn21= new ViewButton();
// ((ViewButton)btn21).setName("客房預訂");
// ((ViewButton)btn21).setType("view");
// ((ViewButton)btn21).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_pages() + "bookroom.jsp"));
// Button btn22 = null;
// btn22= new ViewButton();
// ((ViewButton)btn22).setName("我的房間");
// ((ViewButton)btn22).setType("view");
// ((ViewButton)btn22).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_pages() + "myroom.jsp"));
// Button btn23 = null;
// btn23= new ViewButton();
// ((ViewButton)btn23).setName("我的訂單");
// ((ViewButton)btn23).setType("view");
// ((ViewButton)btn23).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_pages() + "queryOrders.jsp?nav_mode=0"));
// Button btn24 = null;
// btn24= new ViewButton();
// ((ViewButton)btn24).setName("我的分享鎖");
// ((ViewButton)btn24).setType("view");
// ((ViewButton)btn24).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_pages() + "myshare.jsp"));
Button btn31 = null;
btn31= new ViewButton();
((ViewButton)btn31).setName("門禁開門");
((ViewButton)btn31).setType("view");
((ViewButton)btn31).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_rentclient() + "rc/index.htmlJINGHAO/keyword"));
Button btn32 = null;
btn32= new ViewButton();
((ViewButton)btn32).setName("房間開門");
((ViewButton)btn32).setType("view");
((ViewButton)btn32).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_rentclient() + "rc/index.htmlJINGHAO/keyroom"));
/*
Button btn33 = null;
btn33= new ViewButton();
((ViewButton)btn33).setName("設定開門密碼");
((ViewButton)btn33).setType("view");
((ViewButton)btn33).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_rentclient() + "setpass.html"));
Button btn34 = null;
btn34= new ViewButton();
((ViewButton)btn34).setName("設定分享");
((ViewButton)btn34).setType("view");
((ViewButton)btn34).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_rentclient() + "shareopen.html"));
Button btn35 = null;
btn35= new ViewButton();
((ViewButton)btn35).setName("水電費");
((ViewButton)btn35).setType("view");
((ViewButton)btn35).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_rentclient() + "feelist.html"));
*/
// Button btn35 = null;
// btn35=new CommonButton();
// btn35.setName("一鍵開門");
// ((CommonButton)btn35).setType("click");
// ((CommonButton)btn35).setKey("35");
// ComplexButton mainBtn2 = new ComplexButton();
// mainBtn2.setName("線上預訂");
// mainBtn2.setSub_button(new Button[] { btn21, btn22,btn23,btn24});
ComplexButton mainBtn2 = new ComplexButton();
mainBtn2.setName("開門");
// mainBtn2.setSub_button(new Button[] { btn31, btn32, btn33, btn34, btn35 });
mainBtn2.setSub_button(new Button[] { btn31, btn32});
Button mainBtn35 = null;
mainBtn35 = new ViewButton();
((ViewButton)mainBtn35).setName("登入");
((ViewButton)mainBtn35).setType("view");
((ViewButton)mainBtn35).setUrl(OauthUtil.MycreateOauth(MainConst.getDomain_rentclient() + "rc/index.html"));
CommonButton btn34 = new CommonButton();
btn34.setName("掃一掃");
btn34.setType("scancode_push");
btn34.setKey("34");
ComplexButton mainBtn3 = new ComplexButton();
mainBtn3.setName("使用者");
// mainBtn2.setSub_button(new Button[] { btn31, btn32, btn33, btn34, btn35 });
mainBtn3.setSub_button(new Button[] { btn34,mainBtn35});
/**
* 這是公眾號xiaoqrobot目前的選單結構,每個一級選單都有二級選單項<br>
*
* 在某個一級選單下沒有二級選單的情況,menu該如何定義呢?<br>
* 比如,第三個一級選單項不是“更多體驗”,而直接是“幽默笑話”,那麼menu應該這樣定義:<br>
* menu.setButton(new Button[] { mainBtn1, mainBtn2, btn33 });
*/
Menu menu = new Menu();
menu.setButton(new Button[] { mainBtn1, mainBtn2, mainBtn3 });
return menu;
} //...
public static void initMenu(){
// 呼叫介面獲取access_token
L.i("開始配置微信選單");
// 呼叫介面建立選單
int result = WeixinUtil.createMenu(getMenu(), MainConst.getToken());
// 判斷選單建立結果
if (0 == result)
{
L.i("成功配置微信選單.");
}
else
{
L.v("配置微信選單失敗!");
}
}//...
上面的是建立選單的,還有進入選單時,我們要微信授權,所有觸發選單的頁面,也要微信授權,才能拿的到openid
/**
* 通過Oauth獲得Base資訊(openID),再通過OauthServlet跳轉回url
* @param url
* @return 完整url
*/
public static String MycreateInfoOauth(String url){
return createOAuth(MainConst.getWXAppID(), urlEncodeUTF8(MainConst.getDomain_weixin()+"oauthInfo"), "snsapi_userinfo", url);
}
/**
* 通過Oauth獲得Base資訊(openID),再通過OauthServlet跳轉回url
* 暫時沒用
* @param url
* @return 完整url
*/
// public static String MycreateBaseOauth(String url){
// return createOAuth(MainConst.getWXAppID(), urlEncodeUTF8(MainConst.getDomain_weixin()+"oauth"), "snsapi_base", url);
// }
//
/**
*
* @param appID
*
* @param address 要UTF-8格式過。如 urlEncodeUTF8(url)
*
* @param scope snsapi_base 直接可以獲取openID,不需要使用者點選授權。 snsapi_userinfo 需要使用者授權,可以獲得使用者的基本資料
*
* @param state 在授權跳轉後,會帶上這個引數, 作為跳轉URL 我們可以在自己的後臺再獲取它
*
* @return
*/
public static String createOAuth(String appID,String address,String scope,String state){
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appID
+"&redirect_uri="+address +"&response_type=code&scope="
+ scope + "&state=" +state + "#wechat_redirect";
return url;
}//...
appid是微信公眾號的配置appid,通過授權我們可以拿到openid
相關文章
- 單選多選按鈕
- 掃一掃,原來這麼簡單
- HTML input radio 單選按鈕HTML
- HTML input radio單選按鈕HTML
- radio 單選按鈕 選中多個
- Tkinter (11) 選單按鈕部件 Menubutton
- Tkinter (15) 單選按鈕部件 Radiobutton
- Chrome 22亮相 全新選單按鈕曝光Chrome
- CSS3 美化radio單選按鈕CSSS3
- 單選按鈕和核取方塊
- 設定radio單選按鈕預設選中
- JavaScript獲取選中radio單選按鈕值JavaScript
- js點選按鈕劃出選單容器第一版JS
- 獨立按鍵的掃描
- Tkinter (30) 選單按鈕部件 ttk.Menubutton
- Tkinter (34) 單選按鈕部件 ttk.Radiobutton
- sonar(二)掃描配置
- HTML 單選按鈕實現 (性別選擇)(解讀)HTML
- 如何使用 Bootstrap class 向按鈕新增下拉選單boot
- [開發教程] 第17講:Bootstrap單選按鈕boot
- Umi4選單欄將collapse按鈕放置底部
- 點選一個按鈕使其樣式發生變化,再點選另一個按鈕發生同樣變化,但上一個按鈕樣式復原
- Android 點選按鈕跳轉Android
- JavaScript 點選按鈕返回底部JavaScript
- 選單許可權和按鈕許可權設定
- JQuery統一複寫美化專案中所有radio單選按鈕樣式jQuery
- 小程式webview呼叫微信掃一掃的“曲折”思路WebView
- 防止頁面按鈕多次點選
- 直播系統原始碼,單選按鈕和核取方塊原始碼
- js練習----radio name屬性定義單選按鈕組JS
- [開發教程]第23講:Bootstrap帶下拉選單的按鈕boot
- 微控制器學習(九)定時器掃描按鈕和數碼管與PWM的使用定時器
- 【掃盲】Win10配置mmdetection 2.6Win10
- 點選同一按鈕顯示隱藏切換
- Android | 使用 AspectJ 限制按鈕快速點選Android
- Android處理按鈕重複點選Android
- jQuery點選按鈕刪除div元素jQuery
- JavaScript點選按鈕彈出層效果JavaScript