APP 配置微信回复通知
说明
用户通过微信通知,第一时间收到你的回复通知,让你与用户的沟通更高效。
第一步:设置 webView 允许拉起微信
有的 webview 会禁止拉起第三方的 app,无法打开微信。这时需要修改 webview 的配置,允许其拉起微信。
- h 文件
- h 文件当中需要加入代理 WKNavigationDelegate
@interface ViewController : UIViewController <WKNavigationDelegate>
@end
- m 文件
在文件头当中加入代理
@interface ViewController () <WKNavigationDelegate>
@end
在代理的 webView:decidePolicyForNavigationAction:decisionHandler: 函数中添加如下代码
NSString *urlString = navigationAction.request.URL.absoluteString;
NSURL *url = [NSURL URLWithString:urlString];
if([urlString hasPrefix:@"weixin://"]) {
Boolean canOpenUrl = [[UIApplication sharedApplication] canOpenURL:url];
if(canOpenUrl) {
NSLog(@"已安装微信");
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
//允许跳转
decisionHandler(WKNavigationActionPolicyAllow);
}else {
NSLog(@"尚未安装微信");
//不允许跳转
decisionHandler(WKNavigationActionPolicyCancel);
}
}else {
//允许跳转
decisionHandler(WKNavigationActionPolicyAllow);
}
info.plist 文件
在 info.plist 文件当中加入如下代码
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
</array>
WebViewClient webViewClient = new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
super.shouldOverrideUrlLoading(view, url);
if (url == null) {
return false;
}
try {
if (url.startsWith("weixin://")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
} catch (Exception e) {
return false;
}
view.loadUrl(url);
return true;
}
};
appWebView.setWebViewClient(webViewClient);
第二步:测试微信通知是否成功
1、移动端兔小巢发帖成功后,弹出确定框,点击「开通微信提醒」。
2、进入微信授权,点击「确认接收」。
3、管理员回复该贴后,发帖用户收到微信公众号“腾讯兔小巢”推送的回复通知,即为测试成功。
第三步:将测试调用链接替换为正式调用链接
修改接入的 url 地址,新增参数 d-wx-push=1
比如:http://support.qq.com/embed/9999?d-wx-push=1