InputAdaptation.md 1.7 KB
Newer Older
O
migrate  
oceanxiao 已提交
1 2 3 4 5
# 输入法适配

在小游戏中Unity游戏唤不起输入法,需要使用WX_SDK中提供的方法来唤起输入法,并做简单的逻辑修改来适配。
如下以UGUI的Input组件为例,需要给Input 绑定以下脚本:
```
良宜's avatar
良宜 已提交
6
public class Inputs : MonoBehaviour, IPointerClickHandler, IPointerExitHandler
O
migrate  
oceanxiao 已提交
7 8 9 10
{
    public InputField input;
    public void OnPointerClick(PointerEventData eventData)
    {
良宜's avatar
良宜 已提交
11
        Debug.Log("ooooo");
良宜's avatar
良宜 已提交
12
        WX.ShowKeyboard(new ShowKeyboardOption()
O
migrate  
oceanxiao 已提交
13
        {
良宜's avatar
良宜 已提交
14
            defaultValue = "xxx",
O
migrate  
oceanxiao 已提交
15
            maxLength = 20,
良宜's avatar
良宜 已提交
16 17
            confirmType = "go"
        });
O
migrate  
oceanxiao 已提交
18 19 20 21

        //绑定回调
        WX.OnKeyboardConfirm(OnConfirm);
        WX.OnKeyboardComplete(OnComplete);
良宜's avatar
良宜 已提交
22
        WX.OnKeyboardInput(OnInput);
O
migrate  
oceanxiao 已提交
23 24 25 26 27 28 29
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        // 隐藏输入法
        if (!input.isFocused)
        {
良宜's avatar
良宜 已提交
30
            WX.HideKeyboard(new HideKeyboardOption());
O
migrate  
oceanxiao 已提交
31 32 33 34 35 36 37 38
            //删除掉相关事件监听
            WX.OffKeyboardInput(OnInput);
            WX.OffKeyboardConfirm(OnConfirm);
            WX.OffKeyboardComplete(OnComplete);
        }

    }

良宜's avatar
良宜 已提交
39
    public void OnInput(OnKeyboardInputCallbackResult v)
O
migrate  
oceanxiao 已提交
40
    {
良宜's avatar
良宜 已提交
41 42
        Debug.Log("onInput");
        Debug.Log(v.value);
O
migrate  
oceanxiao 已提交
43 44
        if (input.isFocused)
        {
良宜's avatar
良宜 已提交
45
            input.text = v.value;
O
migrate  
oceanxiao 已提交
46
        }
良宜's avatar
良宜 已提交
47

O
migrate  
oceanxiao 已提交
48 49
    }

良宜's avatar
良宜 已提交
50
    public void OnConfirm(OnKeyboardInputCallbackResult v)
O
migrate  
oceanxiao 已提交
51 52
    {
        // 输入法confirm回调
良宜's avatar
良宜 已提交
53 54
        Debug.Log("onConfirm");
        Debug.Log(v.value);
O
migrate  
oceanxiao 已提交
55 56
    }

良宜's avatar
良宜 已提交
57
    public void OnComplete(OnKeyboardInputCallbackResult v)
O
migrate  
oceanxiao 已提交
58 59
    {
        // 输入法complete回调
良宜's avatar
良宜 已提交
60 61
        Debug.Log("OnComplete");
        Debug.Log(v.value);
O
migrate  
oceanxiao 已提交
62 63 64 65 66
    }


    void Start()
    {
良宜's avatar
良宜 已提交
67

O
migrate  
oceanxiao 已提交
68 69 70
    }

}
良宜's avatar
良宜 已提交
71
```